小心得:处理两个头文件互调,死循环情况(将文件之间的编译依赖关系降至最低)
来源:互联网 发布:获取json的key和value 编辑:程序博客网 时间:2024/06/05 01:21
本来没这么关注这个问题,但是今天应用两个类之间互调,发现出现死循环显现,就是传说中的泥中有我我中有你,都是预编译搞的鬼,一旦加入#include然后两个类就是开始我
把你的源代码复制过来,你又把我得源代码复制过来,当然vc不会这么干了,他会给报错,说其中一个类为定义。
解决这个问题之前,要先说一下这个声明和定义分开的问题,就是实现和接口分离问题,这是我的简单理解,欢迎提意见。
简单来说就是类中函数不内联,这样才能在此基础上用一个简单的方法处理互调问题。而且相对来说就VC来说,这样的话就可以对每个一个类做编译,精细化处理错误。不用等全部编译完成在同一编译,(当然对比较牛的人来说,出错率基本为0的就不说了)小工程还好说,百十个问题而已,如果是特大工程呢,那就满屏幕都是错误。如此来说对新手好出还是蛮多的。
接下来就是处理,可以在头文件中先声明要调用的类,或者函数,这样编译头文件的时候就可以通过编译,然后呢,在具体实现中加入需要预编译的头文件名称,OK就能通过。
当然主要针对的还是指针类型的,访问回调,这才是真正的大环境,在他的基础上用面的操作才能实现,如果是实际类对象,那么不好意思,我这还没有研究完。
0 0
- 小心得:处理两个头文件互调,死循环情况(将文件之间的编译依赖关系降至最低)
- 将文件之间的编译依赖关系降至最低
- 条款31:将文件间的编译依赖关系降至最低
- item31: 将文件间的编译依存关系降至最低
- 将文件间的编译依存关系降至最低
- 将文件间的编译依存关系降至最低
- 将文件间的编译依存关系降至最低(第一部分)
- 将文件间的编译依存关系降至最低(第二部分)
- 将文件间的编译依存关系降至最低(第三部分)
- C++之将文件间的编译依存关系降至最低(31)---《Effective C++》
- C++ 接口与实现分离技术---如何将文件间的编译关系降至最低
- 条款31:将文件间的编译依存关系降至最低
- 条款31:将文件间的编译依存关系降至最低
- 条款31:将文件间的编译依存关系降至最低
- 条款31:将文件间的编译依存关系降至最低
- 条款31:将文件间的编译依存关系降至最低
- 《Effective C++》读书笔记之item31:将文件间的编译依存关系降至最低
- 条款31将文件间的编译依存关系降至最低
- 图表引擎AChartEngine 一
- Log4j解惑之一
- 字节流与位流的相互转换实现
- C++ 简单的日志类
- ERROR 1045: Access denied for user: 'root@localhost' (Using password: YES)
- 小心得:处理两个头文件互调,死循环情况(将文件之间的编译依赖关系降至最低)
- 在线编程学习【优质的资源】
- C++ DLL远程注入与卸载函数
- 类成员函数继承(virtual、非virtual)
- 黑马程序员_WPF(WPF认识,Sender,C#基础加强类继承,集合,Xaml,控件通用属性)
- OpenOffice API 开发 (二) 样例程序编译
- DLL的远程注入及卸载技术详解
- C#遍历指定文件夹中的所有文件,DirectoryInfo和FileInfo的一些常用方法
- QSizeploicy、 QLayout-setSizeConstrain