可以声明一个类而不定义它。
class screen;//声明而未定义
在声明之后、定义之前,类screen是一个不完全类型,即已知screen是一个类型,但不知道包含哪些成员。
不完全类型只能以有限的方式使用。不能用来定义该类型的对象,只能用于定义指向该类型的指针及引用,或用于声明(不能是定义)使用该类型作为形参类型或者返回类型的函数。
在创建对象之前,必须完整地定义该类,所以类不能具有自身类型的数据成员,然而只要类名已出现就可以认为该类已声明,因此类的数据成员可以是指向自身类型的指针或引用。
定义一个类,也就是定义了一个类型。一旦定义了类,就可以定义该类的对象。定义对象时将为其分配存储空间,但定义类型时一般不进行存储分配。