读书人

为啥类的预声明不起作用

发布时间: 2013-07-04 11:45:33 作者: rapoo

为什么类的预声明不起作用



class B; //预声明

class A
{
public:
B b;
};

class B
{
public:
int a;
};


int main()
{

return 0;
}

编译环境vs2008,求解释 类
[解决办法]
在前置声明时,我们只能使用的就是类的指针和引用(因为引用也是居于指针的实现的)。
[解决办法]
定义一个对象需要用到他的定义式, b的定义式在后面
[解决办法]
只有向前声明的类是不完全定义的类,没有完全定义的类不能定义它的变量,只能定义它的指针或引用类型的变量。
[解决办法]
道理很简单,定义它的变量时至少会调用它的构造函数,而前置声明并没有给出它的构造函数

读书人网 >C++

热点推荐