第一次发帖。这是一个家庭作业问题,但我已按原样提交。这是我自己的决议,因为我们的教授需要永远回归工作。我有一个在头文件中创建的类,我得到"构造函数不允许返回类型错误',但据我所知,我的类用分号关闭。 头文件的目的是获取传递给fname的文本文件。
这是代码,它在第13行终止:
#ifndef MYLIB
#define MYLIB
using namespace std;
template <class T, int n>
class ONE
{
private:
T x[n];
public:
void ONE(string fname)
{
//read data into array
fstream file;
file.open(fname, ios::in);
for (int i = 0; i < n; ++i)
{
file >> x[i];
}
file.close();
}
void Display()
{
//display array x
cout << "Original Characters: ";
for (int i = 0; i < n; ++i)
{
cout << x[i] << " ";
}
cout << endl;
}
void SortArray()
{
//sort array x
sort(x, x + n);
cout << "Sorted characters: ";
for (int i = 0; i < n; ++i)
{
cout << x[i];
}
cout << endl;
}
};
#endif
答案 0 :(得分:1)
从构造函数定义和声明中删除void
。它应该没有返回类型。
void ONE(string fname)
{
...
}
应该是
ONE(string fname)
{
...
}
答案 1 :(得分:0)
声明构造函数时,根本不应使用返回类型。在您的代码中,您目前有void ONE(string fname)
,但void
不应该在那里。
答案 2 :(得分:0)
它的含义是:构造函数应该没有返回类型;删除它。
void ONE(string fname)
// ^^^^
这与分号无关。只需阅读错误消息。