1、类的定义和声明也可以像函数一样分开。
栗子:

class CSys;

上述声明被称为前向声明。对于CSys来说,其声明之后和定义之前,被称为不完全类型。

2、不完全类型的使用场景极其有限:
(1)定义指向该类型的指针和引用。
(2)声明(不能定义)以不完全类型作为参数和返回值的函数。
3、完全类型:类不光已经声明,而且完成了定义。
4、拓展:
类中不可以定义类本身,但是可以声明类自身的引用和指针。
栗子:

class A
{
public:A *pa;  //正确A a;    //error C2460: “A::a”: 使用正在定义的“A”
};

(SAW:Game Over!)

C/Cpp / 类的前向声明、不完全类型和完全类型相关推荐

  1. C++类的前向声明的学习

    假设声明两个类A和B,如果需要在A.h中定义B类对象,B b_; 势必要包含# include "B.h",而B类中需要定义A类对象A a_; 也要包含B.h,但是相互包含是不允许 ...

  2. C++ 类的前向声明

    前向声明 在计算机程序设计中, 前向声明是指声明标识符(表示编程的实体,如数据类型.变量.函数)时还没有给出完整的定义.即可以声明一个类而不定义它,只声明类但不知道类的成员变量.函数等具体细节. 如: ...

  3. C++中前置声明(前向声明)用法的思考

    前两天因为修改自己文章<个人对QT中的namespace Ui的理解>遇到前置声明的概念,很陌生就好奇的自己码了点代码,谁知编译报错,改来改去却百思不得其解.代码如下: #include ...

  4. 两个类相互包含引用的问题--类前向声明

    在构造自己的类时,有可能会碰到两个类之间的相互引用问题,例如:定义了类A类B,A中使用了B定义的类型,B中也使用了A定义的类型 class A {     int i;     B b; } clas ...

  5. C++基础(1)- 声明(前向声明 Forward Declaration)与定义

    C++基础(1)- 声明(前向声明 Forward Declaration)与定义 如需转载请标明出处:http://blog.csdn.net/itas109 技术交流:129518033 文章目录 ...

  6. 第12章-cpp类和动态内存分配

    本章内容包括: • 对类成员使用动态内存分配. • 隐式和显式复制构造函数. • 隐式和显式重载赋值运算符. • 在构造函数中使用new所必须完成的工作. • 使用静态类成员. • 将定位new运算符 ...

  7. 前向声明include区别

    前向声明&include区别 下面主要介绍了前向声明概念.用法以及和#include区别 前向声明概念(forward declaration) 在程序中引入了类类型的B.在声明之后,定义之前 ...

  8. 把类的成员函数声明为友元函数,但不能访问私有成员的原因和解决办法

    定义类X,类Y,在类X中声明类Y的成员函数g()为类X的友元函数 常见的几种错误写法及原因: 错误写法1 class Y; class X {public:X(int i) :i(i) {}frien ...

  9. C++中的类——类的定义和声明

    面向对象最大的特征就是提出了类和对象的概念.在以面向对象的方式开发应用程序时,将遇到的各种事物抽象为类,类中通常包含数据和操作数据的方法,用户通过实例化类对象来访问类中的数据和方法. 一.类的定义 c ...

最新文章

  1. 详解log4j2(上) - 从基础到实战
  2. Visual Studio 2010中的UML
  3. Jerry文章《浅谈Java和SAP ABAP的静态代理和动态代理,以及ABAP面向切面编程的尝试一文的源代码》
  4. bootdefault和configuration_springboot常用注解、包引入和自动配置功能解读
  5. 关于在头文件中定义变量
  6. linux怎么用网络yum源,Linux配置本地网络YUM源
  7. 【渝粤教育】国家开放大学2018年春季 8638-21T薪酬制度与薪酬管理 参考试题
  8. eBay起诉指控亚马逊利用非法手段挖走其卖家
  9. 使用可靠多播与OPENDDS进行数据分发
  10. 计算机应用技术和cad,计算机图形技术与CAD
  11. java deff_java – 在配置中添加时出现Spring NoClassDefF...
  12. 计算机控制电缆单价,zr-djyvrp3X2X0.5阻燃计算机控制电缆单价
  13. 计算机音乐按键有声音,计算器上的声音键是哪个键
  14. 推荐一些网络安全的网站和论坛
  15. 拼多多玩出花的社交电商 你知道多少?四川海昇智深度解析来啦
  16. python四叶玫瑰数,任意位数自幂数寻找|Python练习系列[4]
  17. 【论文笔记】用数字孪生改变农业食品生产系统和供应链
  18. 回头再说--英雄 汪峰
  19. 使用threejs 实现3D物体展示,平移实现类似百度地图功能
  20. Python攻关之模块(1)

热门文章

  1. 【技术干货】浏览器工作原理和常见WEB攻击 (下)
  2. Hbase的基本认识
  3. iptables如何添加容许某个端口的访问
  4. Android借助Application重写App的Crash(简易版)
  5. c++ 6.0 没有找到mspdb60.dll 问题的解决
  6. Colaboratory下载Kaggle数据
  7. php自定义中文分词方法,一个用PHP写的中文分词函数_php
  8. C 语言判断大端小端
  9. 将gitLab 上的dev分支拉取到本地
  10. (大纲)三小时学会openCV