声明了但是未定义的类,或者未知大小的数组,或者包含不完整成员,都属于未完整定义对象类型。未完整定义的对象类型和void类型,统称为不完整类型。
A class that has been declared but not defined, or an array of unknown size or of incomplete element type, is
an incompletely-defined object type. Incompletely-defined object types and the void types are incomplete
types (3.9.1). Objects shall not be defined to have an incomplete type.
一个类在某一编译单元可能是不完整类型,但是在后续编译过程中又变成完整类型。
6 A class type (such as “class X”) might be incomplete at one point in a translation unit and complete later
on; the type “class X” is the same type at both points. The declared type of an array object might be
an array of incomplete class type and therefore incomplete; if the class type is completed later on in the
translation unit, the array type becomes complete;