互为成员两个类的声明

原创 2006年05月24日 10:54:00

class B;

class A
{
    B * m_pB;
};

class B
{
   A mA;
}

关键有两点:
1. 其中的一个类需要提前声明(forward declaration);
2. 被提前声明的类在其被具体定义之前只能声明该类的指针或引用,如上面class A定义中只能声明class B的指针(或引用)。

   一旦类的定义结束(编译器在遇到类定义的右花括号之后),用该类来声明类实例对象,或对象指针,引用都是合法的。如上面的类B中定义类A的实例对象就是正确的,因为在此前类A的定义已结束。反之在A中声明B的对象实例就是错误的。

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

将任务4的解决用一个项目多个文件的方式实现,其中两个类的声明放在一个.h文件中,每个类的成员函数分别放一个文件,main()函数用一个文件。

/* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 文件名称: ...

待补遗(6)[C++]两个类如何通过友元声明互相访问对方的非公有成员

1.设有类A,和类B两个类,假定类A的声明在类B之前(类的声明总会有先后之分) 2.类A与类B,具有一个private权限的func函数。 一、类A,类B的声明如下(定义在在同一个源文件中): c...

C++第六周任务5:解决用一个项目多个文件的方式实现,其中两个类的声明放在一个.h文件中,每个类的成员函数分别放一个文件,main()函数用一个文件。体会这样安排的优点。

/* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved. * 文件名称: 设...

项目-两个成员的类模板将类声明改为类模板声明,使得数据成员data1和data2可以是任何类型

问题及代码: /* *Copyright (c) 2016,烟台大学计算机学院 *All rights reserved. *文件名称:main.cpp *作 者:李磊涛 *完成时间:2016...

【从C到C++学习笔记】类声明/公有私有保护成员/数据抽象和封装

SCJP认证 1.5(2) 声明类成员

public成员与private成员

类成员声明与定义前加inline的区别(C++ inline 函数)

转载自:http://www.cnblogs.com/berry/articles/1582702.html 参考:http://msdn.microsoft.com/zh-cn/library/wi...

c++中 类数据成员的定义、声明总结

C++为类中提供类成员的初始化列表 类对象的构造顺序是这样的: 1.分配内存,调用构造函数时,隐式/显示的初始化各数据成员 2.进入构造函数后在构造函数中执行一般计算   1.类里面的...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)