不完全类型

1 class Screen;

不完全类型只能以有限方式使用。不能定义该类型的对象。不完全类型只能用于定义指向该类型的指针及引用,或者用于声明使用该类型作为形参类型或者返回值类型。

只有当类定义已经在前面出现过,数据成员才能被指定为该类型。如果是不完全类型,那么数据成员只能是指向该类类型的指针或引用。

所以类不能具有自身类型的成员,但是可以使用自身类类型指针的成员。

1 class LinkScreen
2 {
3     Screen window;
4     LinkScreen * next;
5     LinkScreen * prev;
6 };

不完全类型声明一般用在相互依赖的类中。

原文地址:https://www.cnblogs.com/wendellyi/p/4017659.html