通過顯式的模板例項化得到型別。將所有的顯式例項化過程安放在另外的檔案中。在本例中,可以建立乙個新檔案templateinstantiations.cpp:
// array.h
#ifndef myarray_h
#define myarray_h
template class myarray
; t& operator(int i); //
const t& get_elem (int i) const; //
void set_elem(int i, const t& value); //
operator t*(); //
};#endif
// array.cpp
#include "array.h"
templatet& myarray::operator (int i)
templateconst t& myarray::get_elem(int i) const
templatevoid myarray::set_elem(int i, const t& value)
templatemyarray::operator t*()
// templateinstantiations.cpp
#include "array.cpp"
template class myarray ; // 顯式例項化
C 類模板的宣告和實現不能分離
也許你具有良好的程式設計習慣,在定義乙個類的時候總會把宣告和實現分離開,位於不同的檔案中。比如你定義乙個類a,首先建立乙個.h檔案,如下 class a 接下來你建立乙個.cpp檔案實現類的宣告,如下 include classa.h include a a int b void a show a ...
C 模板類宣告和實現遇到的問題
宣告乙個 模板類的標頭檔案 stack.h include include templateclass stack 另外宣告乙個模板類的實現檔案 stack.cpp include stack.h templatevoid stack push t const elem templatevoid s...
類模板不能讓宣告和實現分離
寫模板類的時候出的問題,調了一晚上,就是鏈結出錯,於是搜尋引擎開始工作,搜到篇簡單的博文解釋,暫時做個標記吧 我們習慣是.h中放類的函式宣告,在.cpp中放類的函式定義,但在類模板中不能這樣做,如隨手寫了個demo測試了下 h中 cpp view plain copy pragma once tem...