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

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

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

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

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

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值