首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

当2个类彼此互为类成员时,怎么写头文件包含

2012-02-29 
当2个类彼此互为类成员时,如何写头文件包含?A.h文件:classA{Bb}B.h文件:ClassB{Aa}由于是成员是类对象,

当2个类彼此互为类成员时,如何写头文件包含?
A.h文件:
class   A
{
B   b;
}

B.h文件:
Class   B
{
A   a;
}

由于是成员是类对象,不知道如何写包含文件

[解决办法]
不能这样写,会有循环包含的问题
所以
A.h文件:
class B;
class A
{
B* b;
}
B.h文件:
class A;
Class B
{
A* a;
}
然后在cpp文件中包含头文件就可以使用了
[解决办法]
B.h文件:
extern Class A;
Class B
{
A a;
}
[解决办法]
不可以。
必须把其中一个成员类型,改成指针。
[解决办法]
楼上两位正解。
使用指针+类向前声明。
[解决办法]
非指针不能用也
[解决办法]
没有注意到必须是指针的问题。学习了。
[解决办法]
循环定义是不行的,要用指针表示不是循环定义,例如:
struct me
{
me sub_me;
};
这是错的

struct me
{
me *ptr_me;
};
可以了
同理
关于用指针互相定义时用fwd定义就可以了,就是前置定义:
//file1
class B;// fwd,no impl
class A
{
public:
B *b_;// a pointer to B,ok!
};
//file2
class A;// fwd,no impl
class B
{
public:
A *a_;// apointer to A,ok!
}

[解决办法]
impl
应该改成具体定义不是实现,抱歉

热点排行