1.C++头文件中的类相互引用

核心:头文件相互引用,一个#include,另一个class C

C++头文件相互#include时最好是:
(1)在"CA.h"中 #include "CB.h".
(2)在"CB.h"中用类的前向声明: class CA;
(3)最好加上头文件卫士( #ifndef ***   #define ***  #endif)

2.示例代码

(1)"CA.h":

#ifndef HEADER_CA
#define HEADER_CA
#include "CB.h"
class CA
{CB* pB;CB  b; //正确,因为此处已经知道CB类的大小,且定义了CB,可以为b分配空间
};
#endif

(2)"CB.h":
#ifndef HEADER_CB
#define HEADER_CB
class CA;//这个必须要用,不能只用#include "CA.h",如果只是#include "CA.h"而没有class CA;则会报错.
class CB
{CA* pA;//CA a;//错误,因为此时还不知道CA的大小,无法分配空间
};
#endif 
(3)"CA.cpp":
#include "CA.h"
但是,*.cpp文件只能#include “CA.h”.如果#icnlude “CB.h”则错误(展开后CA不识别CB)。

当一个头文件引用另一个头文件中的类~相关推荐

  1. python导入其他py文件-Python中py文件引用另一个py文件变量的方法

    最近自己初学Python,在编程是遇到一个问题就是,怎样在一个py文件中使用另一个py文件中变量,问题如下: demo1代码 import requests r = requests.get(&quo ...

  2. less (三) 一个less 文件引用另一个less文件

    现在假设我们写了两个less文件,一个文件是a.less  另一个文件是 b.less; 那么a.less文件中如何引用b.less中的文件呢? 例子: 先新建如下的目录结构 文件信息: index. ...

  3. python怎么调用另一个py文件的变量,Python中py文件引用另一个py文件变量的方法

    Python中py文件引用另一个py文件变量的方法 最近自己初学Python,在编程是遇到一个问题就是,怎样在一个py文件中使用另一个py文件中变量,问题如下: demo1代码 import requ ...

  4. c++ 一个头文件引用另一个头文件的类

    ----C++头文件相互引用,一个#include,另一个class C C++头文件相互#include时最好是: (1)在"CA.h"中 #include "CB.h ...

  5. node.js关于一个js文件引用另一个js文件里面的函数或者数组变量

    node.js中跨文件的数据使用目前知道的有以下两种方式: 1.global变量 例:1.js 中有 function debug(){ console.log('debug'); } global. ...

  6. python怎么调用另一个py文件的变量_Python中py文件引用另一个py文件变量的方法

    {"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...

  7. 关于Keil中,变量函数跨文件引用报错问题

    作者是keil 4的新手,刚上手此编译器,如有不当,敬请斧正! 当我们想象vc一样使用keil里面的全局变量,函数时,明明定义了全局变量,包含了头文件,结果,在keil里要么报重定义错误,要么,干脆报 ...

  8. ava 使用POI读取EXCEL文件并且存入任意实体Bean中

    Java 使用POI读取EXCEL(.xlsx)文件并且存入任意实体Bean中 工具类代码 示例使用代码 注意事项!!! 1.代码中未对Excel数据类型进行判断,bean中属性均为String接收( ...

  9. C语言两个同名头文件,C lang: C语言中两个头文件引入相同的头文件(Header.h)

    C lang: C语言中两个头文件引入相同的头文件(Header.h) C lang: C语言中两个头文件引入相同的头文件(Header.h) [var1] For example: Header.h ...

最新文章

  1. Task Runner Explorer for vs2015找不到啊
  2. Android开发学习:在Eclipse中导入Android项目方法
  3. java 枚举内嵌枚举_高度有用的Java ChronoUnit枚举
  4. [django]django模型中auto_now和auto_now_add
  5. 论文阅读 - Group Normalization
  6. 4怎么修边_亦木良品阻燃板怎么样
  7. C++/C--STL API查询及免费教程网站
  8. [CF Skills]如何在预定的时间运行你的程序
  9. 项目管理学习总结(17)——关于前后端分离的分析
  10. 11.73 亿人看央视春晚;苹果逼用户买充电器;特斯拉 Model 3 降价七千 | 极客头条...
  11. 全国二级 mysql有用_2020年全国计算机二级MySQL复习知识点:调整服务器
  12. 在python语言中、写文件的操作是_Python语言之详解文件操作
  13. python进阶路线 知乎_Python自学路线图之Python进阶
  14. python确定样本量(总体比例)
  15. RK Android系统开机启动流程
  16. JAVA_判断日期是否为工作日(排除节假日和调整周末上班)
  17. 网络创业理论与实践(网络通识)
  18. 2011年-2019年华东地区产业发展、人口以及平均工资简析
  19. 突发收购,亚信科技在谋划什么?
  20. 敏捷开发与Scrum区别(敏捷开发(Agile)教程)

热门文章

  1. 有些数的素因子只有3,5,7.请设计一个算法,找出其中第k个数
  2. Java 代码的基本知识
  3. 动态规划之-----单调递增最长子序列(nyoj17)
  4. NYOJ 195 飞翔
  5. rabbitmq简单收发服务搭建
  6. mysql 添加外键时 error 150 问题总汇
  7. PHP -----上传文件
  8. ios开发之 icon规范+启动图规范+启动页规范
  9. 修改VS2010生成的dll文件中的内容
  10. GridView 自写分页 存储过程