加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

如何降低头文件的依赖

发布时间:2020-12-13 23:04:25 所属栏目:百科 来源:网络整理
导读:经常发现,在需要重用一个头文件而包含它时,编译器抱怨很多东西找不到。原因是头文件里直接或者间接的依赖了太多的东西。如何避免或者减轻头文件的依赖,我学习到了几点: 1. 只包含父类的头文件; 2. 尽量使用指针和引用类型,然后用前置声明; 3. 把实现

经常发现,在需要重用一个头文件而包含它时,编译器抱怨很多东西找不到。原因是头文件里直接或者间接的依赖了太多的东西。如何避免或者减轻头文件的依赖,我学习到了几点:


1. 只包含父类的头文件;

2. 尽量使用指针和引用类型,然后用前置声明;

3. 把实现相关的数据和方法放到cpp文件中(参照在类的头文件中隐藏私有数据)

比如:

// example.h


#include <QObject>


class QTimer;

class MyObject : public QObject

{

public:

void init();

void start();

...

QTimer& timer();


private:

class Private;

Private &_d;

};


这样基本上可以放心的包含你的头文件。

在cpp文件中一般把对应头文件放在最前面,这样可以及时发现头文件是否真的没有了其他的依赖。实现中需要的其他头文件一次排在后头。


对于使用该头文件的模块的人来说,只要包该头文件,以及用到的接口里的数据类型的头文件就可以了。

// user1.cpp


#include "example.h"


void funcA()

{

MyObject obj;

obj.start();

}

// user2.cpp


#include "example.h"

#include <QTimer>


void funcB()

{

MyObject obj;

obj.timer().start();

}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读