C++中的INL

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;
}


 

 

發佈了518 篇原創文章 · 獲贊 98 · 訪問量 182萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章