宣告和使用類模板: 如果在類模板外定義成員函式,應寫成類模板形式:
template
測試的模板類,如下:
#ifndef _compare_h
#define _compare_h
template
class compare
;#endif
#include "compare.h"
template
compare::compare(t a,t b)
template
compare::~compare(void)
template
t compare::max()
template
t compare::min()
{return (x單單上面兩個檔案在,vs2008編譯成功,然後加了下面的main函式就出現錯誤了。
#include
using namespace std;
#include "compare.h"
int main()
{comparett(1,2);
cout<::~compare(void)" (??1?
$compare@h@@qae@xz)。
後來查資料,才知道現在的編譯器均不支援,類模板定義與實現分享。
於是把compare.cpp的內容剪下到了,compare.h中,發現正常了。網上還有一種方法,說是用export加在template前,此方法在vs2008仍然無法通過。提示,該關鍵字export保留,可能以後會用到...
總結:在現階段大部分的編譯器,模板定義與模板宣告得放一起方可編譯成功
C 模板類定義與宣告
pragma once ifndef grid h define grid h template class grid int getwidth const static const int kdefaultwidth 10 static const int kdefaultheight 10 pr...
模板類 宣告與定義
模板類的宣告與定義 最近在編寫模板類時發現乙個問題 當把模板類分開為 h宣告檔案 和 cpp實現檔案時,在模板類的main檔案使用模板功能時,編譯結果完全正確,卻無法鏈結成功。但是,如果把main放到.cpp檔案中就沒有任何問題,或者把 cpp 和 h 檔案放在一起也沒有問題。於是摸索著學習,解決問...
模板類的宣告與定義
newhandlersupport.h 檔案 template class newhandlersupport template new handler newhandlersupport currenthandler template newhandlersupport newhandlersup...