[英]Error: Use of class template requires template argument list
当我尝试运行我的程序时,此错误显示“错误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;
}
我是否必须在其他地方重新输入模板?
模板类的成员本身是由其模板类的参数参数化的模板。 当这样的成员在其类之外定义时,它必须明确地声明为模板。
所以你需要改变
void FOURTEEN::ReadData()
至
template <class T, int n>
void FOURTEEN<T, n>::ReadData()
并对DisplayData
功能做同样的事情。
还有一些其他错误:
在函数ReadData
,更改
cin>>a.[i];
至
cin>>a[i];
并在函数DisplayData
,更改
cin>>a.[i]<<'\t';
至
cout<<a[i]<<'\t';
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.