仅当未声明为指针时才不完整类型
Incomplete type only if not declared as pointer
我在一个类中声明了一个对象:
class B;
class A{
B object;
};
如果我声明它为B对象;我得到"对象类型不完整"如果声明为"B* object",则编译成功结束。
为什么会这样?我用的是c++ 11;
当声明为B object;
时,A
需要B
的完整定义,以便编译器知道它有多大,从而知道A
有多大。当声明为指针时,不需要此信息,因为在给定的平台上,所有指针的大小都是相同的。
相关文章:
- #ifdef和未声明的标识符
- 未声明的标识符编译暗黑破坏神 2 程序"muleview"
- 在顶点着色器中使用 OpenGl 的未声明标识符,我在顶点着色器中绘制三角形时遇到问题
- Google protobuf 时间戳未声明标识符,在 Windows 上具有C++
- 在气泡排序程序中未声明错误功能
- 我在范围内未声明的错误类有问题
- std::unordered_map 类型对象声明期间出现"field has incomplete type"错误
- 使用未声明的标识符"sqrt"?
- 我包含了<winuser.h>,但编译器在MonitorFromWindow上抛出"未声明"
- 对类 (C++) 中的私有变量使用未声明的标识符
- 我的代码中有错误,未声明的标识符
- 未定义的标识符/未声明
- 错误:在 C++ 'std'使用未声明的标识符
- 具有未声明/未定义类型的 typedef 结构
- 未声明的标识符和类型"int"从 main 调用类时出现意外错误
- 尝试在Linux Mint 17.1 64位上"make" C++项目时从cstdlib和类似内容编译错误(未声明/不是类型)
- 类型未声明为c++
- CLASS_NAME未声明 - 无法dynamic_cast(目标不是指向完整类型的指针或引用)
- 错误C2027:使用未定义的类型-如何声明类
- 仅当未声明为指针时才不完整类型