C++中的INL(转)

inl 文件是内联函数的源文件。

内联函数通常在c++头文件中实现,但有的时候内联函数较多或者出于一些别的考虑(使头文件看起来更简洁等),

往往会将这部分具体定义的代码添加到INL文件中,然后在该头文件的末尾将其用#include引入。

由此也可以看到inl文件的例外一个用法的影子——模板函数、模板类的定义代码的存放。

对于比较大的工程来说,出于管理方面的考虑,模板函数、模板类的声明部分一般存放在一个或少数几个文件中,而将其定义部分存放在inl文件中,然后在相应的头文件中包含进来。

 

  

简单框架如下: 

 1 // .h文件  
 2 template<class T1,class T2>  
 3 class CTemplateClass  
 4 {  
 5   public:  
 6   CTemplateClass();  
 7   virtual ~CTemplateClass();  
 8   BOOL getInfo(CStringArray& user BaseInfoAry);  
 9 };  
10   
11 // .inl文件  
12 template<class T1,class T2>  
13 CTemplateClass<T1,T2>::CTemplateClass()  
14 {  
15 }  
16 template<class T1,class T2>  
17 CTemplateClass<T1,T2>::~CTemplateClass()  
18 {  
19 }  
20 template<class T1,class T2>  
21 BOOL CTemplateClass<T1,T2>::getInfo(CStringArray& userBaseInfoAry)  
22 {  
23      T1 arg1;  
24       T2 arg2;  
25       return TRUE;  
26 }  

转自:http://blog.csdn.net/hejianhua/article/details/7788076

原文地址:https://www.cnblogs.com/zl1991/p/7356760.html