C++ class ClassName;和#include“FileName.h“的区别

C++ class ClassName;和#include“FileName.h“的区别,第1张

一、class 类名

为什么要用class?
   在一些大的工程中,可能会include几十个基础类,免不了之间会互相引用(不满足继承关系,而是组合关系)这时候会带来一些混乱。如果处理得不好,会搞得一团糟。

class ClassName; 只是声明一个类,并没有真正实例化。

示例:

class ClassName;	//调用ClassName,前向声明
...
...
private:
ClassName *My_ClassName; 	//声明指针

 1、已知ClassName是一个类型,但不知道包含哪些成员;

 2、ClassName类是一个不完全类型(incompete type);

    不完全类型:不能定义该类型的对象,只能用于定义指向该类型的指针及引用,或者用于声明(而不是定义)使用该类型作为形参类型或返回类型的函数。

优点:
1、减少编译器工作量,减少编译的时间
2、去除编译依赖,减少编译消耗的时

缺点:
1、只能以有限方式使用
2、不能够定义ClassName的对象
3、只能用于定义ClassName的指针或者引用
4、只能用于声明使用该类型作为形参或者返回类型的函数

二、include 头文件

   #include"FileName.h" 是将整个FileName.h头文件与使用到的地方关联起来。
   #include"FileName.h" 在编译的时候把FileName.h头文件直接展开,所以里面的接口都能用,可以申明对象。


include没什么可说的能不用就不用吧!


## 三、总结 1、头文件中(.h):尽量少include,如果可以简单申明class ClassName;解决,那最好,减少没有必要的include。 2、实现文件(.cpp)中也要尽量少include,不要include没有用到的头文件。 3、类中尽量采用指针或引用方式调用其它类,这样就可以只声明class ClassName了。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/langs/1499105.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-25
下一篇2022-06-25

发表评论

登录后才能评论

评论列表(0条)

    保存