0

我将创建一个 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' 前面的类型(具有返回类型的构造函数,或当前类名的非法重新定义?)。那么,我的代码有什么问题?

4

3 回答 3

2

在 C++ 中,构造函数不得返回任何内容。正确的定义是L_List():top(NULL)

于 2013-08-03T10:02:44.723 回答
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;
}
于 2013-08-03T10:08:57.217 回答
0

构造函数不是函数。因此它不能返回任何东西,它的目的是构造对象,即根据构造函数的参数设置数据字段。

于 2013-08-03T10:12:42.440 回答