主题:不知道哪错了,很奇怪
cfu18
[专家分:0] 发布于 2008-01-16 11:32:00
请问大家一个问题
Class A;
Class B
{
public:
A a;
};
class A
{
};
哪错了。
回复列表 (共3个回复)
沙发
华山论剑 [专家分:5310] 发布于 2008-01-16 13:33:00
A未定义,只有声明和空的类体。
板凳
华山论剑 [专家分:5310] 发布于 2008-01-16 13:37:00
哦,还有,如果要在一个类定义之前就引用类的变量,只能声明指针和引用类型的,像上面,可以用:
Class A;
Class B
{
public:
A *a; //或者:A &a
};
class A
{
};
直接声明一个"A a"不行,因为静态对象要有一个类的全部信息,而引用或者指针在真正实例化时才需要,所以指针或者引用可以在类定义前声明变量。
3 楼
vbcs [专家分:3910] 发布于 2008-01-16 18:49:00
学习了。
我来回复