模板的宣告和實現

2021-06-09 05:02:56 字數 996 閱讀 9292

通過顯式的模板例項化得到型別。將所有的顯式例項化過程安放在另外的檔案中。在本例中,可以建立乙個新檔案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...