//class template
#include<iostream>
using namespace std;
template <class T> class Pair{
T value1,value2;
public:
Pair(T first,T second){
value1 = first;
value2 = second;
}
T getMax();
};
template<class T>
T Pair::getMax(){
T max;
max = (value1 > value2) ? value1 : value2;
return max;
}
int main(){
Pair my(100,200);
cout << my.getMax() << endl;
return 0;
}
при запуске программы, возникает проблема:C++ шаблон не работают
[Error] F:\c#\cplusplus\demo_code\demo11_template2.cpp:16: error: `template<class T> class Pair' used without template parameters
место, где происходят проблемы в линии "T-Pair :: getMax() {";
[Error] F:\c#\cplusplus\demo_code\demo11_template2.cpp:18: error: `value1' was not declared in this scope
[Error] F:\c#\cplusplus\demo_code\demo11_template2.cpp:18: error: `value2' was not declared in this scope
место, где происходят проблемы в линии max = (value1 > value2) ? value1 : value2;
почему причиной проблемы? Я надеюсь получить искреннюю помощь, спасибо!
Я беден по-английски, очень жаль !!
Почему бы не просто «вернуть значение1> значение2? value1: value2'? –
@Wojtek Surowka Я могу ответить, почему бы не использовать std :: max? :) –
@ VladfromMoscow Предполагая, что OP создает этот код в качестве учебного упражнения, «использование' std :: max' »в этом не поможет, вы можете пропустить переменную 'max', которая все еще учит их чему-то. – Angew