标签:指针 创建 返回 screen span 成员 ack scree 定义
就像可以把函数的声明和定义分离开来一样,我们也能仅仅声明类而暂时不定义它:
class Screen; //Screen类的声明
这种声明有时被称作前向声明(forward declaration),它向程序中引入了名字Screen并且指明了Screen是一种类类型。对于类型Screen来说,在它的声明之后和定义之前是一个不完全类型(incomplete type),也就是说,此时我们已知Screen是一个类类型,但是不清楚它到底包含哪些成员。
不完全类型只能在非常有限的情况下使用:可以定义指向这种类型的指针或引用,也可以声明(但是不能定义)以不完全类型作为参数或者返回类型的函数。
对于一个类来说,在我们创建它的对象之前必须被定义过,而不能仅仅被声明。否则,编译器就无法了解这样的对象需要多少存储空间。类似的,类也必须首先被定义(然后才能创建它的对象),再然后才能用引用或指针访问其成员。毕竟,如果类尚未定义,编译器也就不清楚该类到底有哪些成员。
然而,一旦一个类的名字出现后,它就被认为是声明过了(但尚未定义),因此类允许包含指向它自身类型的引用或指针。
class Link_screen { Screen Window; Link_screen* next; Link_screen* prec; };
标签:指针 创建 返回 screen span 成员 ack scree 定义
原文地址:https://www.cnblogs.com/bootblack/p/11635018.html