1、类的定义和声明也可以像函数一样分开。
栗子:
class CSys;
上述声明被称为前向声明。对于CSys来说,其声明之后和定义之前,被称为不完全类型。
2、不完全类型的使用场景极其有限:
(1)定义指向该类型的指针和引用。
(2)声明(不能定义)以不完全类型作为参数和返回值的函数。
3、完全类型:类不光已经声明,而且完成了定义。
4、拓展:
类中不可以定义类本身,但是可以声明类自身的引用和指针。
栗子:
class A
{
public:
A *pa; //正确
A a; //error C2460: “A::a”: 使用正在定义的“A”
};
(SAW:Game Over!)