1. ホーム
  2. c++

[解決済み] エラーの内容を説明してください。ISO C++は型がない`Personlist'の宣言を禁じています。

2022-02-16 17:52:28

質問

以前作成した別のクラスのオブジェクトの配列を処理するクラスがあります(これは問題なく動作します)。問題は、私のリストクラスのオブジェクトを作成しようとしたときに表示されます。

これはリストクラスのヘッダーです。

#ifndef personlistH
#define personlistH
#include "Person.h"
#include <iomanip>
#include <iostream>
#define SIZE 10

namespace std {

    class PersonList {
private:
    Person persons[SIZE];
    int arrnum;
    string filename;

public:
    Personlist();
    };
}
#endif

これがメイン機能です。

#include <iostream>
#include "PersonList.h"

using namespace std;

int main() {

PersonList personlist;

return 0;   
}

コンパイラが出しているエラーは次のようなものです。

error: "27 \PersonList.h ISO C++ forbids of declaration of `Personlist'. を使用した場合、型がありません。

答えを探したのですが、私はC++にかなり慣れていないので、少し混乱していて、まだフィッティングが見つかっていません。このエラーについて説明していただけると幸いです。

どのように解決するのですか?

コンストラクタ宣言の大文字と小文字を間違えています。以下のようになります。 Personlist(); が必要ですが PersonList(); . クラス名と等しくないので、コンストラクタではなく関数とみなされ、関数は戻り値の型が必要です。