我将创建一个Linked_List对象类,它将是一个用于创建链表对象的“模板”。现在,我写了一个简单的代码,但有一个无法绕过的错误。我的代码是
#include <iostream>
using namespace std;
class L_List {
private:
struct node {
int data;
node* next;
};
node* top;
public:
void L_List():top(NULL) {}
};
int main() {
L_List list;
return 0;
}
在Visual Studio 2008中,我在构造函数声明字符串上遇到错误。 错误是错误C2380 - 在'L_List'之前的类型(具有返回类型的构造函数,或当前类名的非法重新定义?)。那么,我的代码出了什么问题?
答案 0 :(得分:2)
在C ++中,构造函数不能返回任何内容。正确的定义是L_List():top(NULL)
。
答案 1 :(得分:2)
错误
返回类型为
的构造函数
表示必须从构造函数中删除返回类型void
:
#include <iostream>
using namespace std;
class L_List
{
private:
struct node
{
int data;
node* next;
};
node* top;
public:
L_List():top(NULL)
{
}
};
int main()
{
L_List list;
return 0;
}
答案 2 :(得分:0)
构造函数不是函数。因此它无法返回任何内容,其目的是构造对象,即根据构造函数的参数设置数据字段。