gpt4 book ai didi

c++ - 2 个头文件中的 2 个类

转载 作者:行者123 更新时间:2023-11-28 05:13:08 26 4
gpt4 key购买 nike

我正在尝试编译一个包含 2.h 和 3.cpp 的程序。我不断收到相同的错误消息:“错误:‘赞助人’没有命名赞助人匹配的类型;”

当我将整个代码放在一个单独的 .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
};

最佳答案

您可以在 patronic.h 中包含 patrors.h。

您可以通过将以下内容添加到 patron.h 文件的顶部来完成此操作:

#include "patrons.h"

但是在我看来,通常最好存储指向对象的指针而不是整个对象。如果您要将 patron.h 中的 match 变量切换为 Patrons 指针:

Patrons *match;

然后,您可以通过将以下内容添加到 patron.h 文件的顶部来转发声明 Patrons 类,而不是包含 patrons.h:

class Patrons;

然后,如果需要,您可以在 patron.cpp 文件中包含 palators.h。前向声明将帮助您避免陷入循环依赖。

关于c++ - 2 个头文件中的 2 个类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43161902/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com