[英]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.