inl 文件是內聯函數的源文件。
內聯函數通常在c++頭文件中實現,但有的時候內聯函數較多或者出於一些別的考慮(使頭文件看起來更簡潔等),
往往會將這部分具體定義的代碼添加到INL文件中,然後在該頭文件的末尾將其用#include引入。
由此也可以看到inl文件的例外一個用法的影子——模板函數、模板類的定義代碼的存放。
對於比較大的工程來說,出於管理方面的考慮,模板函數、模板類的聲明部分一般存放在一個或少數幾個文件中,而將其定義部分存放在inl文件中,然後在相應的頭文件中包含進來。
簡單框架如下:
// .h文件
template<class T1,class T2>
class CTemplateClass
{
public:
CTemplateClass();
virtual ~CTemplateClass();
BOOL getInfo(CStringArray& user BaseInfoAry);
};
// .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;
}