关于C++头文件互引用和前向声明
来源:互联网 发布:矩阵行列式的计算公式 编辑:程序博客网 时间:2024/06/05 18:25
使用C++的程序开发者(尤其是像我这样的新手开发者),都遇见C++的头文件的互包含的问题,最常见导致的错误是使用的类型没有定义。简单的究其原因,主要是互包含导致互相寻找,进入到类似的死循环中,幸好有头文件中的宏定义防止这种死循环。
解决的办法有两种:
1)尽量的减少类之间的耦合,杜绝出现这种问题的根源,有些废话,能杜绝还使用互包含干嘛!
2)在头文件中前置声明需要的类型(参见C++primer的说法),在使用的CPP文件中引用头文件,也就是说尽量的不在头文件中引用头文件。
这样确实能够解决以上的问题,但是也需要注意使用类型前置声明规则,主要有一下的规则:不完全的前置声明类型只能用于声明指向该类型的指针或者引用(因为指针和引用地址的大小和具体的类没有关系),也可以使用之声明(不是定义函数,这也就是有些要求函数必须要在CPP中定义,考虑到了这方面的规则)函数,作为参数或者返回值。
由于使用到了前置声明,只能有这么多的了解,有理解不正确的地方欢迎指正交流,将感激不尽。
- 关于C++头文件互引用和前向声明
- oc 关于头文件声明 与前向声明
- 前向引用声明
- 前向引用声明
- 前向引用声明
- c++-前向声明
- C++前向引用声明
- 到底是前向引用,还是包含头文件
- [C++]前置声明和头文件
- C头文件声明和实现分开
- [C++]前置声明和头文件
- [C++]前置声明和头文件
- 正则的前向声明和反前向声明
- 【C++】前向引用申明
- Pimpl idiom,前向声明(forward declaration)与#include头文件
- 关于 头文件引用...
- 关于类的前向声明
- 关于C++的前向声明问题
- 细数二十世纪最伟大的十大算法
- UBUNTU 内网服务器的访问
- C++编程规范 编程风格 学习 (1) -- 积极使用const
- [cpp-netlib]自行处理chunked编码的回包
- mongodb ubuntu 12.0.4 安装
- 关于C++头文件互引用和前向声明
- 快速排序
- ExtJS 4 Grids 详解
- 3.0.0CodeSminth 连接数据库 获得表中列名
- 从零开始object-c
- PHP学习---面向对象
- ios 合并图片显示
- PHP学习----数组
- My Firefox plugins 开发