如何拥有多个模板参数?为什么这不起作用?
template <class T, int size>
class List {
public:
void addElement(int);
private:
T arr[size];
};
template <class T, int size>
void List<T,int>::addElement(T n){
arr[0] = n;
}
int main(){
List<int,5> l;
l.addElement(3); //example method
}
错误讯息:
main.cpp:10:16: error: type/value mismatch at argument 2 in template
parameter list for 'template<class T, int size> class List' void
List<T,int>::addElement(T n){
^ main.cpp:10:16: note: expected a constant of type 'int', got 'int' main.cpp: In function 'void addElement(T)':
main.cpp:11:5: error: 'arr' was not declared in this scope
arr[0] = n;
^~~
答案 0 :(得分:0)
我在代码中发现了一些错误。 让我告诉你修复。
template <class T, int size>
class List {
public:
void addElement(T); //ERROR here is T instead int
private:
T arr[size];
};
template <class T, int size>
void List<T,size>::addElement(T n){ //ERROR here is <T,size> instead <T,int>
arr[0] = n;
}
int main(){
List<int,5> l;
l.addElement(3);
}
我希望我能帮助