2个头文件中的2个类
问题描述:
我正在编译一个具有2.h和3.cpp的程序。我不断收到相同的错误消息:“错误:'老主顾'不会命名类型赞助人匹配;”2个头文件中的2个类
当我把整个代码放在一个单独的.cpp文件中时,我没有任何错误并编译,但对于我的任务,我需要在单独的文件中完成它。
我想我写了代码,所以我不知道为什么我会收到错误消息。
// class patrons.h
using namespace std;
class Patrons //named it patrons because this is where i have a list of all the patrons
{
int patronscnt;
public:
std::list<string>::iterator PL;
std::list<string> patslist;
string name;
void patronslist();
void addpatron();
void removepatron();
void editpatron();
};
-
// class patron.h
using namespace std;
class Patron //class decleration. Named it patron because it has the information of one patron
{
string x;
string input;//class members
Patrons match;
public:
void ID();
void email();
void phone();
void address();
void borrowstatus();
void finestatus();
void check(string);
//update
};
答
你可能包括patron.h patrons.h。
您可以通过添加实现这一点下面的patron.h文件的顶部:
#include "patrons.h"
然而,在我看来,它通常是更好地存储指向的对象,而不是整个对象。如果你要在比赛可变开关在patron.h成为赞助指针:
Patrons *match;
,而不是包括patrons.h然后,您可以转发声明赞助类,加入以下内容的顶部patron.h文件:
class Patrons;
然后如果需要的话,你可以在您的patron.cpp文件patrons.h。正向声明将帮助你运行到循环依赖。
+0
谢谢!我能够编译它。 – user143
答
您需要包括Patrons.h在食客:#include "Patrons.h"
这有一个奇怪的命名。为什么单数的“赞助人”包含复数的“赞助人”?一个随便的读者会期待相反的结果。 – user4581301