C++ 仅当未声明为指针时,类型不完整

C++ 仅当未声明为指针时,类型不完整,c++,c++11,C++,C++11,我在类中声明了一个对象: class B; class A{ B object; }; 如果我宣布它为B对象;我得到“对象的类型不完整”。如果我将其声明为“B*对象”,编译将成功结束 为什么会这样? 我使用的是C++11 当声明为B对象时,A需要B的完整定义,以便编译器知道它有多大,从而知道A有多大。当声明为指针时,不需要此信息,因为给定平台上的所有指针大小相同。当声明为B对象时,A需要B的完整定义,以便编译器知道它有多大,从而知道A有多大。当声明为指针时,不需要此信息,因为给定平台上的所

我在类中声明了一个对象:

class B;
class A{
  B object;
};
如果我宣布它为B对象;我得到“对象的类型不完整”。如果我将其声明为“B*对象”,编译将成功结束

为什么会这样?
我使用的是C++11

当声明为
B对象时
A
需要
B
的完整定义,以便编译器知道它有多大,从而知道
A
有多大。当声明为指针时,不需要此信息,因为给定平台上的所有指针大小相同。

当声明为
B对象时
A
需要
B
的完整定义,以便编译器知道它有多大,从而知道
A
有多大。当声明为指针时,不需要此信息,因为给定平台上的所有指针大小相同。

当声明为
B对象时
A
需要
B
的完整定义,以便编译器知道它有多大,从而知道
A
有多大。当声明为指针时,不需要此信息,因为给定平台上的所有指针大小相同。

当声明为
B对象时
A
需要
B
的完整定义,以便编译器知道它有多大,从而知道
A
有多大。当声明为指针时,不需要此信息,因为给定平台上的所有指针大小相同