簡體   English   中英

解釋錯誤:ISO C ++禁止聲明沒有類型的`Personlist'

[英]Explain the error: ISO C++ forbids declaration of `Personlist' with no type

我有一個類,它將處理我之前創建的另一個類的對象數組(工作正常)。 當我嘗試創建List-class的對象時出現問題。

這是list-class的標題:

#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;   
}

我的編譯器給出的錯誤如下:

錯誤:“27 \\ PersonList.h ISO C ++禁止聲明`Personlist'沒有類型”

我已經搜索了答案,但由於我對C ++很陌生,所以有點令人困惑,我還沒有找到合適的答案。 如果你能為我解釋這個錯誤會很棒。

您的構造函數聲明上的大小寫錯誤。 你有Personlist(); 但需要PersonList(); 因為你擁有的不等於類名,所以它被認為是函數而不是構造函數,函數需要返回類型。

不要將自己的類型添加到標准命名空間( std ),而是創建自己的命名空間並在其中定義類。

//PersonList.h

namespace PersonNamespace 
{
    class PersonList 
    {
        //members here
    };
}

//Main.cpp

using namespace PersonNamespace;

實際錯誤是您在Personlist了拼寫錯誤而不是PersonList

該錯誤是因為在聲明構造函數時,大小寫錯誤; 它應該是PersonList()而不是Personlist()

此外,您不應該在std命名空間中聲明自己的類; 這是為標准庫保留的。 你應該組成自己的命名空間名稱,然后把你的東西放進去。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM