错误:使用类模板需要模板参数列表

use*_*689 4 c++ templates class

当我尝试运行我的程序时,此错误显示“错误 C2955:'FOURTEEN':使用类模板需要模板参数列表”

#include <iostream>
using namespace std;
template <class T, int n>
class FOURTEEN
{
private:
    T a[n];
public:
    void ReadData();
    void DisplayData();
};
void FOURTEEN::ReadData()
{
    for(int i=0;i<n;++i)
        cin>>a.[i];
}
void FOURTEEN::DisplayData()
{
    for(int i=0;i<n;++i)
        cin>>a.[i]<<'\t';
    cout<<endl;
}
int main()
{
    FOURTEEN <int, 5>P;
//Read data into array a of object P
    cout<<"Enter 5 numbers: ";
    P.ReadData();
//display data of array a of object P
    P.DisplayData();

    system("pause");
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我是否必须在其他地方重新输入模板?

son*_*yao 5

模板类的成员本身就是由其模板类的参数参数化的模板。当这样的成员在其类之外定义时,它必须显式声明为模板。

所以你需要改变

void FOURTEEN::ReadData()
Run Code Online (Sandbox Code Playgroud)

template <class T, int n>
void FOURTEEN<T, n>::ReadData()
Run Code Online (Sandbox Code Playgroud)

并做同样的事情来运行DisplayData

还有一些其他错误:

在功能上ReadData,改变

cin>>a.[i];
Run Code Online (Sandbox Code Playgroud)

cin>>a[i];
Run Code Online (Sandbox Code Playgroud)

和在功能上DisplayData,改变

cin>>a.[i]<<'\t';
Run Code Online (Sandbox Code Playgroud)

cout<<a[i]<<'\t';
Run Code Online (Sandbox Code Playgroud)