小心得:处理两个头文件互调,死循环情况将文件之间的编译依赖关系降至最低

本来没这么关注这个问题,但是今天应用两个类之间互调,发现出现死循环显现,就是传说中的泥中有我我中有你,都是预编译搞的鬼,一旦加入#include然后两个类就是开始我

把你的源代码复制过来,你又把我得源代码复制过来,当然vc不会这么干了,他会给报错,说其中一个类为定义。

解决这个问题之前,要先说一下这个声明和定义分开的问题,就是实现和接口分离问题,这是我的简单理解,欢迎提意见。

简单来说就是类中函数不内联,这样才能在此基础上用一个简单的方法处理互调问题。而且相对来说就VC来说,这样的话就可以对每个一个类做编译,精细化处理错误。不用等全部编译完成在同一编译,(当然对比较牛的人来说,出错率基本为0的就不说了)小工程还好说,百十个问题而已,如果是特大工程呢,那就满屏幕都是错误。如此来说对新手好出还是蛮多的。

接下来就是处理,可以在头文件中先声明要调用的类,或者函数,这样编译头文件的时候就可以通过编译,然后呢,在具体实现中加入需要预编译的头文件名称,OK就能通过。

当然主要针对的还是指针类型的,访问回调,这才是真正的大环境,在他的基础上用面的操作才能实现,如果是实际类对象,那么不好意思,我这还没有研究完。

相关文章

迭代器模式(Iterator)迭代器模式(Iterator)[Cursor]意图...
高性能IO模型浅析服务器端编程经常需要构造高性能的IO模型,...
策略模式(Strategy)策略模式(Strategy)[Policy]意图:定...
访问者模式(Visitor)访问者模式(Visitor)意图:表示一个...
命令模式(Command)命令模式(Command)[Action/Transactio...
生成器模式(Builder)生成器模式(Builder)意图:将一个对...