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

エラー

戻り値の型を持つコンストラクター

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 に答える
2

C++ では、コンストラクターは何も返してはなりません。正しい定義はL_List():top(NULL).

于 2013-08-03T10:02:44.723 に答える
0

コンストラクターは関数ではありません。したがって、何も返すことはできません。その目的は、オブジェクトを構築することです。つまり、コンストラクターのパラメーターに応じてデータフィールドをセットアップします。

于 2013-08-03T10:12:42.440 に答える