Google C++编程规范 – 第二十一条 -《-inl.h文件》
2016-01-26 09:35
309 查看
本原创文章属于《Linux大棚》博客。
博客地址为http://roclinux.cn。
文章作者为roc wu
==
【规则】
你可以在后缀为-inl.h的头文件中定义比较复杂的内联函数。
【详解】
原则上,内联函数的定义应该放在头文件中,以便编译器能够在内联函数调用时直接展开代码。然而,按照.h文件和.cpp/.cc文件的作用区分,又应该将函数的定义放在.cpp/.cc文件中才对。如何是好呢?
如果明确可以增强可读性,或者确认可以提高性能的话,是可以把内敛函数的定义直接放在头文件中的,比如私有变量的Get/Set类方法。而对于比较复杂的内联函数,虽然也可以放在.h头文件中,但还是建议你把它单独提出来放在后缀为-inl.h的头文件中,然后由.h头文件来include进来,这样使得代码结构更清晰,也使得类定义和实现相分离。
其实-inl.h的使用方法,还可以用在函数模板的定义上,这样会使你的模板定义更加清晰可读。
最后提醒一句,不要忘记在-inl.h中仍然要使用#define防御哦。
谢谢!
作者 rocrocket 于 5:47 下午
博客地址为http://roclinux.cn。
文章作者为roc wu
==
【规则】
你可以在后缀为-inl.h的头文件中定义比较复杂的内联函数。
【详解】
原则上,内联函数的定义应该放在头文件中,以便编译器能够在内联函数调用时直接展开代码。然而,按照.h文件和.cpp/.cc文件的作用区分,又应该将函数的定义放在.cpp/.cc文件中才对。如何是好呢?
如果明确可以增强可读性,或者确认可以提高性能的话,是可以把内敛函数的定义直接放在头文件中的,比如私有变量的Get/Set类方法。而对于比较复杂的内联函数,虽然也可以放在.h头文件中,但还是建议你把它单独提出来放在后缀为-inl.h的头文件中,然后由.h头文件来include进来,这样使得代码结构更清晰,也使得类定义和实现相分离。
其实-inl.h的使用方法,还可以用在函数模板的定义上,这样会使你的模板定义更加清晰可读。
最后提醒一句,不要忘记在-inl.h中仍然要使用#define防御哦。
谢谢!
作者 rocrocket 于 5:47 下午
相关文章推荐
- C++遍历文件夹,使用boost filesystem递归遍历文件夹
- Boost 学习之算法篇 any_of 与 any_of_equal
- 20160125.CCPP详解体系(0004天)
- c++STL中的hash_map自定义类。
- 20160124.CCPP详解体系(0003天)
- 20160123.CCPP详解体系(0002天)
- 历届蓝桥杯C/C++省赛试题
- zhx and contest (HDU_5188) 01背包+条件限制
- 2012年第三届蓝桥杯C/C++程序设计本科B组省赛
- C语言 百炼成钢16
- 2012年第三届蓝桥杯C/C++程序设计本科B组省赛 取球博弈(编程大题)
- C++编程实例-while循环结构
- C++编程实例-友元
- C++编程实例-分支结构
- C++编程实例-I/O流
- C++ 对象与指针
- C++函数重载
- C++编程实例-函数
- C++编程实例-多重循环结构
- C++ 面向过程与面向对象的区别