为啥类的预声明不起作用
为什么类的预声明不起作用
编译环境vs2008,求解释
------解决方案--------------------
在前置声明时,我们只能使用的就是类的指针和引用(因为引用也是居于指针的实现的)。
------解决方案--------------------
定义一个对象需要用到他的定义式, b的定义式在后面
------解决方案--------------------
只有向前声明的类是不完全定义的类,没有完全定义的类不能定义它的变量,只能定义它的指针或引用类型的变量。
------解决方案--------------------
道理很简单,定义它的变量时至少会调用它的构造函数,而前置声明并没有给出它的构造函数
class B; //预声明
class A
{
public:
B b;
};
class B
{
public:
int a;
};
int main()
{
return 0;
}
编译环境vs2008,求解释
类
------解决方案--------------------
在前置声明时,我们只能使用的就是类的指针和引用(因为引用也是居于指针的实现的)。
------解决方案--------------------
定义一个对象需要用到他的定义式, b的定义式在后面
------解决方案--------------------
只有向前声明的类是不完全定义的类,没有完全定义的类不能定义它的变量,只能定义它的指针或引用类型的变量。
------解决方案--------------------
道理很简单,定义它的变量时至少会调用它的构造函数,而前置声明并没有给出它的构造函数