Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/161.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 返回类型为的构造函数,或当前类的非法重新定义_C++_Constructor_Linked List - Fatal编程技术网

C++ 返回类型为的构造函数,或当前类的非法重新定义

C++ 返回类型为的构造函数,或当前类的非法重新定义,c++,constructor,linked-list,C++,Constructor,Linked List,我将创建一个链表对象类,它将是创建链表对象的“模板”。现在,我已经编写了一个简单的代码,但有一个无法绕过的错误。我的代码是 #include <iostream> using namespace std; class L_List { private: struct node { int data; node* next; }; node* top; public:

我将创建一个链表对象类,它将是创建链表对象的“模板”。现在,我已经编写了一个简单的代码,但有一个无法绕过的错误。我的代码是

#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;
}
#包括
使用名称空间std;
类L_列表{
私人:
结构节点{
int数据;
节点*下一步;
};
节点*顶部;
公众:
void L_List():top(NULL){}
};
int main(){
L_列表;
返回0;
}
在VisualStudio2008中,构造函数声明字符串出现错误。
错误是“L_List”(返回类型的构造函数,或当前类名的非法重新定义)之前的错误C2380-类型。那么,我的代码有什么不对?C++中的

,构造函数不返回任何东西。正确的定义是 LyList](在C++中,Tope:NULL) .< /P>

,构造函数不返回任何东西。正确的定义是:top(NULL)错误

返回类型为的构造函数

表示必须从构造函数中删除返回类型
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;
}
#包括
使用名称空间std;
类L_列表
{
私人:
结构节点
{
int数据;
节点*下一步;
};
节点*顶部;
公众:
列表():顶部(空)
{
}
};
int main()
{
L_列表;
返回0;
}
错误

返回类型为的构造函数

表示必须从构造函数中删除返回类型
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;
}
#包括
使用名称空间std;
类L_列表
{
私人:
结构节点
{
int数据;
节点*下一步;
};
节点*顶部;
公众:
列表():顶部(空)
{
}
};
int main()
{
L_列表;
返回0;
}

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

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

void-该类型返回任何内容吗?@Lacoste不,这只是一个语法约束。这就是语言的定义。谢谢你回答我的问题,但是这个案例我不明白。我声明了void L_List:top(NULL){},这意味着我已经有了一个没有返回任何内容的构造函数。@Lacoste,但这是一个语法错误。您必须声明没有返回类型的构造函数,即。E作为
L_List:top(NULL){}
,没有
void
关键字。啊,好了,现在我知道了,void-该类型返回什么吗?@Lacoste否,这只是一个语法约束。这就是语言的定义。谢谢你回答我的问题,但是这个案例我不明白。我声明了void L_List:top(NULL){},这意味着我已经有了一个没有返回任何内容的构造函数。@Lacoste,但这是一个语法错误。您必须声明没有返回类型的构造函数,即。E如<代码> LyList:Top-C++(null){} /Case>,没有<代码> VoUT> /Cord>关键字。AHOH,好了,现在我应该花更多的时间阅读和学习一个基本的C++语言指南。您应该花更多的时间阅读和学习一个基本的C++语言指南。