C/Cpp / 类的前向声明、不完全类型和完全类型
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 / 类的前向声明、不完全类型和完全类型相关推荐
- C++类的前向声明的学习
假设声明两个类A和B,如果需要在A.h中定义B类对象,B b_; 势必要包含# include "B.h",而B类中需要定义A类对象A a_; 也要包含B.h,但是相互包含是不允许 ...
- C++ 类的前向声明
前向声明 在计算机程序设计中, 前向声明是指声明标识符(表示编程的实体,如数据类型.变量.函数)时还没有给出完整的定义.即可以声明一个类而不定义它,只声明类但不知道类的成员变量.函数等具体细节. 如: ...
- C++中前置声明(前向声明)用法的思考
前两天因为修改自己文章<个人对QT中的namespace Ui的理解>遇到前置声明的概念,很陌生就好奇的自己码了点代码,谁知编译报错,改来改去却百思不得其解.代码如下: #include ...
- 两个类相互包含引用的问题--类前向声明
在构造自己的类时,有可能会碰到两个类之间的相互引用问题,例如:定义了类A类B,A中使用了B定义的类型,B中也使用了A定义的类型 class A { int i; B b; } clas ...
- C++基础(1)- 声明(前向声明 Forward Declaration)与定义
C++基础(1)- 声明(前向声明 Forward Declaration)与定义 如需转载请标明出处:http://blog.csdn.net/itas109 技术交流:129518033 文章目录 ...
- 第12章-cpp类和动态内存分配
本章内容包括: • 对类成员使用动态内存分配. • 隐式和显式复制构造函数. • 隐式和显式重载赋值运算符. • 在构造函数中使用new所必须完成的工作. • 使用静态类成员. • 将定位new运算符 ...
- 前向声明include区别
前向声明&include区别 下面主要介绍了前向声明概念.用法以及和#include区别 前向声明概念(forward declaration) 在程序中引入了类类型的B.在声明之后,定义之前 ...
- 把类的成员函数声明为友元函数,但不能访问私有成员的原因和解决办法
定义类X,类Y,在类X中声明类Y的成员函数g()为类X的友元函数 常见的几种错误写法及原因: 错误写法1 class Y; class X {public:X(int i) :i(i) {}frien ...
- C++中的类——类的定义和声明
面向对象最大的特征就是提出了类和对象的概念.在以面向对象的方式开发应用程序时,将遇到的各种事物抽象为类,类中通常包含数据和操作数据的方法,用户通过实例化类对象来访问类中的数据和方法. 一.类的定义 c ...
最新文章
- 详解log4j2(上) - 从基础到实战
- Visual Studio 2010中的UML
- Jerry文章《浅谈Java和SAP ABAP的静态代理和动态代理,以及ABAP面向切面编程的尝试一文的源代码》
- bootdefault和configuration_springboot常用注解、包引入和自动配置功能解读
- 关于在头文件中定义变量
- linux怎么用网络yum源,Linux配置本地网络YUM源
- 【渝粤教育】国家开放大学2018年春季 8638-21T薪酬制度与薪酬管理 参考试题
- eBay起诉指控亚马逊利用非法手段挖走其卖家
- 使用可靠多播与OPENDDS进行数据分发
- 计算机应用技术和cad,计算机图形技术与CAD
- java deff_java – 在配置中添加时出现Spring NoClassDefF...
- 计算机控制电缆单价,zr-djyvrp3X2X0.5阻燃计算机控制电缆单价
- 计算机音乐按键有声音,计算器上的声音键是哪个键
- 推荐一些网络安全的网站和论坛
- 拼多多玩出花的社交电商 你知道多少?四川海昇智深度解析来啦
- python四叶玫瑰数,任意位数自幂数寻找|Python练习系列[4]
- 【论文笔记】用数字孪生改变农业食品生产系统和供应链
- 回头再说--英雄 汪峰
- 使用threejs 实现3D物体展示,平移实现类似百度地图功能
- Python攻关之模块(1)