.inl是什么文件
来源:互联网 发布:淘宝客转链接api 编辑:程序博客网 时间:2024/05/17 02:26
*.inl文件是内联函数的源文件,通常内联函数在C++头文件中实现,但有时为了考虑将其实现与头文件分离,故意在另一文件中实现,通常它在声明内联函数的头文件的末尾被#include语句包含进来。
由此也可以看到inl文件的例外一个用法的影子——模板函数、模板类的定义代码的存放。对于比较大的工程来说,出于管理方面的考虑,模板函数、模板类的声明部分一般存放在一个或少数几个文件中,而将其定义部分存放在inl文件中,然后在相应的头文件中包含进来。
简单框架如下:
// .h文件template<class T1,class T2>class CTemplateClass{public:CTemplateClass();virtual ~CTemplateClass();BOOL getInfo(CStringArray& userBaseInfoAry);};// .inl文件template<class T1,class T2>CTemplateClass<T1,T2>::CTemplateClass(){}template<class T1,class T2>CTemplateClass<T1,T2>::~CTemplateClass(){}template<class T1,class T2>BOOL CTemplateClass<T1,T2>::getInfo(CStringArray& userBaseInfoAry){T1 arg1;T2 arg2;return TRUE;}
【规则】
你可以在后缀为-inl.h的头文件中定义比较复杂的内联函数。
【详解】
原则上,内联函数的定义应该放在头文件中,以便编译器能够在内联函数调用时直接展开代码。然而,按照.h文件和.cpp/.cc文件的作用区分,又应该将函数的定义放在.cpp/.cc文件中才对。如何是好呢?
如果明确可以增强可读性,或者确认可以提高性能的话,是可以把内敛函数的定义直接放在头文件中的,比如私有变量的Get/Set类方法。而对于比较复杂的内联函数,虽然也可以放在.h头文件中,但还是建议你把它单独提出来放在后缀为-inl.h的头文件中,然后由.h头文件来include进来,这样使得代码结构更清晰,也使得类定义和实现相分离。
其实-inl.h的使用方法,还可以用在函数模板的定义上,这样会使你的模板定义更加清晰可读。
最后提醒一句,不要忘记在-inl.h中仍然要使用#define防御哦。
转载出处:http://roclinux.cn/?p=3414
0 0
- .inl是什么文件
- inl 文件
- ACE .i .inl文件
- C++中的inl文件
- INL文件(c++)
- c++ .inl 文件说明
- C++ .inl文件
- 说说C++中的INL文件
- 说说C++中的INL文件
- C++里面的inl文件
- *.inl文件是内联函数的源文件
- *.inl文件是内联函数的源文件
- Google C++编程规范 – 第二十一条 -《-inl.h文件》
- 【原创】VC实现文件选择对话框并且排除afxwin1.inl line22错误
- xsd是什么文件,作用是什么?
- .ftl文件 是什么文件
- .ftl文件 是什么文件
- ftl文件是什么文件
- 关于Java web 开发前后台的开发优化
- 1041. Be Unique
- java调memcached 例子
- 【Android】apk反编译与防止反编译
- Dino Esposito: 一个领域模型的设计
- .inl是什么文件
- 字体UIFont
- c++ interactive demo
- 五种开源协议的比较(BSD,Apache,GPL,LGPL,MIT) – 整理
- Sublime text2中文乱码的一些事
- 佩尔方程
- 有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? Java实现
- 制作封装-手工制作
- Scala 中的val 与 var 的区别 immutable 与 mutable 的 区别