如何降低头文件的依赖
经常发现,在需要重用一个头文件而包含它时,编译器抱怨很多东西找不到。原因是头文件里直接或者间接的依赖了太多的东西。如何避免或者减轻头文件的依赖,我学习到了几点: 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(); } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 详尽分析 Oracle的SOA五步走方案
- React-Native ListView onPress – undefined不是对象
- Oracle关于位图索引的创建与应用
- Flash Builder 4.6问题:访问未定义的属性 – 清除它不是答
- ruby-on-rails – Rails simple_form:禁用错误标签
- 不需要命名空间依赖项
- Cocos2d-x3.2 UserDefault用户数据
- rubygems – 可以为Chef-client更改宝石来源?
- FlexViewer学习资料,希望对初学者有帮助(转)
- Cocos2d-x 内存管理中retain() 、autoRelease()、release()