C++类类型

Posted bootblack

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++类类型相关的知识,希望对你有一定的参考价值。

类的声明

  就像可以把函数的声明和定义分离开来一样,我们也能仅仅声明类而暂时不定义它:

class Screen; //Screen类的声明

  这种声明有时被称作前向声明(forward declaration),它向程序中引入了名字Screen并且指明了Screen是一种类类型。对于类型Screen来说,在它的声明之后和定义之前是一个不完全类型(incomplete type),也就是说,此时我们已知Screen是一个类类型,但是不清楚它到底包含哪些成员。

  不完全类型只能在非常有限的情况下使用:可以定义指向这种类型的指针或引用,也可以声明(但是不能定义)以不完全类型作为参数或者返回类型的函数。

  对于一个类来说,在我们创建它的对象之前必须被定义过,而不能仅仅被声明。否则,编译器就无法了解这样的对象需要多少存储空间。类似的,类也必须首先被定义(然后才能创建它的对象),再然后才能用引用或指针访问其成员。毕竟,如果类尚未定义,编译器也就不清楚该类到底有哪些成员。

  然而,一旦一个类的名字出现后,它就被认为是声明过了(但尚未定义),因此类允许包含指向它自身类型的引用或指针。

class Link_screen 
    Screen Window;
    Link_screen* next;
    Link_screen* prec;
;

 

以上是关于C++类类型的主要内容,如果未能解决你的问题,请参考以下文章

没有类类型 C++

为啥 C++ 不能用“超类”类型的右值初始化“派生类”类型的变量?

C++ 类类型作为参数

C++类类型

c++有混合类型吗

根据类类型 C++ 运行代码