Google C++编程规范 – 第十九条 -《前置声明》
2014-12-09 07:06
363 查看
转自:http://roclinux.cn/?p=3285
本原创文章属于《Linux大棚》博客。
博客地址为http://roclinux.cn。
文章作者为roc wu
==
【规范】
对于普通的类,建议使用前置声明,而不是#include。
【什么是前置声明】
在英文中,前置声明称为“forward declaration”,是指“对类、函数或模板进行声明,且不含相关的具体定义”。我们可以使用前置声明来代替那些用于声明的#include语句。
【支持者的声音】
过多的#include会导致编译器打开很多的文件,并处理很多的输入内容。另外,当头文件内容修改时,也会导致更多次的重新编译。
如果我们使用前置声明,可以避免上述问题。
【反对者的声音】
在使用模板、typedef、默认参数等语法时,我们就比较难确定前置声明的正确形式了 ;
对于一段代码片段,我们很难决定是使用前置声明还是使用#include,尤其是在有隐式转换操作时。在一些极端情况下,用前置声明代替#include会完全改变代码的原意。
如果要前置声明过多的内容,会显得很冗余拖沓,不如#include简单。
对函数和模板的前置声明,会阻碍原作者对函数或模板的改进,比如调整一个参数的类型,给模板的参数增加一个默认值等。
对名字空间std::中标记的前置声明,经常会产生“未定义”的报错。
如果特意调整代码以便使用前置声明,往往会使得代码运行变慢,代码逻辑变复杂,比如用指针成员代替对象成员等。
前置声明对代码效率的收益,目前也没有得到有力的证明。
【结论】
如果要使用头文件中的某个函数,请使用#include方法引用头文件
如果要使用头文件中的某个类模板,请使用#include方法引用头文件
如果要使用某个普通的类,建议使用前置声明。
不必只是为了避免使用#include,而用指针成员替代对象成员。
谢谢!
本原创文章属于《Linux大棚》博客。
博客地址为http://roclinux.cn。
文章作者为roc wu
==
【规范】
对于普通的类,建议使用前置声明,而不是#include。
【什么是前置声明】
在英文中,前置声明称为“forward declaration”,是指“对类、函数或模板进行声明,且不含相关的具体定义”。我们可以使用前置声明来代替那些用于声明的#include语句。
【支持者的声音】
过多的#include会导致编译器打开很多的文件,并处理很多的输入内容。另外,当头文件内容修改时,也会导致更多次的重新编译。
如果我们使用前置声明,可以避免上述问题。
【反对者的声音】
在使用模板、typedef、默认参数等语法时,我们就比较难确定前置声明的正确形式了 ;
对于一段代码片段,我们很难决定是使用前置声明还是使用#include,尤其是在有隐式转换操作时。在一些极端情况下,用前置声明代替#include会完全改变代码的原意。
如果要前置声明过多的内容,会显得很冗余拖沓,不如#include简单。
对函数和模板的前置声明,会阻碍原作者对函数或模板的改进,比如调整一个参数的类型,给模板的参数增加一个默认值等。
对名字空间std::中标记的前置声明,经常会产生“未定义”的报错。
如果特意调整代码以便使用前置声明,往往会使得代码运行变慢,代码逻辑变复杂,比如用指针成员代替对象成员等。
前置声明对代码效率的收益,目前也没有得到有力的证明。
【结论】
如果要使用头文件中的某个函数,请使用#include方法引用头文件
如果要使用头文件中的某个类模板,请使用#include方法引用头文件
如果要使用某个普通的类,建议使用前置声明。
不必只是为了避免使用#include,而用指针成员替代对象成员。
谢谢!
相关文章推荐
- Google C++编程规范
- 一张图总结Google C++编程规范(Google C++ Style Guide)
- C++编程规范_Google
- google c++编程规范(重点记录)
- Google C++编程规范
- Google-C++编程规范(完整)
- GOOGLE C++编程规范
- Google C++编程规范 1 头文件
- 一张图总结Google C++编程规范(Google C++ Style Guide)
- Google C++编程规范 – 第二十一条 -《-inl.h文件》
- 一张图总结Google C++编程规范(Google C++ Style Guide)
- 对Google C++编程规范的理解和实践
- Google c++编程规范-----注释
- Google C++编程规范 1.2
- Google C++编程规范(一)
- 一张图总结Google C++编程规范(Google C++ Style Guide)
- Google-C++编程规范(完整)
- Google发布C++编程规范
- 一张图总结Google C++编程规范(Google C++ Style Guide)
- Google C++编程规范学习--头文件