0
我開始學習C++模板。 現在,我正在嘗試編譯C++模板的簡單示例。錯誤C2955和錯誤C2244使用C++模板
#include <iostream.h>
template <class T> class pair1 {
T value1, value2;
public:
pair1 (T first, T second) {
value1=first;
value2=second;
}
T getmax();
};
template <class T>
T pair1::getmax(){
T retval;
retval = value1>value2? value1 : value2;
return retval;
}
int main(){
pair1<int> myobject (100, 75);
cout << myobject.getmax()<<endl;
system("pause");
return 0;
}
我發生了以下2個錯誤:
- (1)錯誤C2955: 'pair1':使用模板需要模板參數 列表
- (2)錯誤C2244:'pair1: :GetMax的「:無法功能 定義匹配到一個現有的聲明
我使用Visual Studio 2010中
當使用inline函數如下,它的工作罰款:
#include <iostream.h>
template <class T> class pair1 {
T value1, value2;
public:
pair1 (T first, T second) {
value1=first;
value2=second;
}
**T getmax(){ T retval;
retval = value1>value2? value1 : value2;
return retval;};**
};
int main(){
pair1<int> myobject (100, 75);
cout << myobject.getmax()<<endl;
system("pause");
return 0;
}
但是,我不想在這種情況下,使用內聯函數, 希望誰能告訴什麼是錯的C++模板代碼的第一個塊。
這與他用過的有什麼不同? – 2013-02-28 06:40:36
@Aniket,T參數怎麼樣? – ForEveR 2013-02-28 06:41:59
噢,是的,他有兩個代碼張貼。我正在看第二個試圖弄清楚它出了什麼問題! – 2013-02-28 06:44:19