0
如何擁有多個模板參數?爲什麼這不起作用?具有特定類型參數的C++模板
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;
^~~
Fromo http://coliru.stacked-crooked.com/a/4bf130e4d6ed4342
請詳細說明你的意思是「不行」是什麼。沒有足夠的信息來識別或重現問題。 –
你的代碼是否在任何函數之外?該課程實際上是否缺少分號?使用不是[mcve]的代碼很難。 – chris
這是使用正確的語法,所以我猜錯誤是在別的地方。你可以發佈一個最小自包含的例子(當你編譯時產生確切的錯誤?) – templatetypedef