C 模板類定義與宣告

2021-09-30 03:18:05 字數 945 閱讀 6419

宣告和使用類模板: 如果在類模板外定義成員函式,應寫成類模板形式:

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...