c++ - 从成员变量中借用值?

标签 c++ class oop inheritance

我在这里坐了 10 分钟,试图想出标题。如果有人可以,请随意更改它。

无论如何,我有两个类(class)campusbuilding以及 campus 中的两个数组本身。然而,这些数组是我必须用来设置 ID 的值的数组。在building无论如何。

campus , 我有 loadFilesearchList

loadFile从文件中读取,并将值设置为 building 中的三个成员变量以及前面提到的两个数组。

但是我需要使用 searchList打印出这些值。 (这是一项作业。如果我按照自己的方式去做,我可能会做不同的事情,因为坦率地说,我不擅长这个)。

这就是一切都走下坡路的地方。我对如何进行感到困惑。我尝试做的第一件事是调用 building 的构造函数在loadFile这是 campus 的一部分使用 building::building(ID, name, description)它应该在构造函数本身中设置这些值。

然后在searchList ,我以为我可以去cout << building::getID() << building::getName() << building::getDescription(); (所有这些都是 building 中的成员函数)但显然通过一系列错误我意识到这不是要走的路。

所以我尝试不使用范围解析运算符,而是创建一个 building 类型的变量某处。所以我做了building a里面loadFile并设置 a = building(ID, name, description)在定义这些值之后。

当然,这样我是访问不到a.getID的在searchList .所以我试着让它成为一个全局变量,但显然它不会那么简单。

如果您需要更多上下文,here's任务详情。

这是我的类(class)标题

int const maxPerBuildingType = 7;
class campus
{
friend class building;
//friend building::building(int, std::string, std::string);


private:
//int academic[maxPerBuildingType]; removed
//int recreation[maxPerBuildingType]; removed
building recreation[maxPerBuildingType];
building academic[maxPerBuildingType]; 
int numberOfAcademic; 
int numberOfRecreation;
std::string temp;
protected:

public:

campus();
static int const maxPerBuildingType;
void loadFile();
void searchList();

};

我不知道你是否需要这些定义,因为它无论如何都是错误的,但它是 here (更新编辑)如果你需要它。如有必要,我会将其编辑到这篇文章中。

无论如何,谢谢。

编辑:当然,答案是因为我很笨。数组必须是建筑物类型,这样我才能分配所需数量的建筑物。我还没有完成任务,但现在我相信一切都很好。这可能会改变,但是嗯。谢谢大家!

最佳答案

目前您没有在任何地方存放您的建筑物。您将它们放入一个名为 a 的局部变量中,然后将它们丢弃。

我怀疑这个练习的目的是将建筑物存储到数组academicrecreation 中。您目前将它们作为 int 数组,但它们可能应该是特定建筑类的数组(我假设该练习还希望您为建筑物类型设置不同的建筑类,可能作为建筑).

一旦您的校园有了自己的建筑物列表,您的许多问题就会自然而然地得到解答。

关于c++ - 从成员变量中借用值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35305708/

相关文章:

c++ - 理解这个 C++ 模块?

C++ OpenCV 做人脸识别,直到相机被移除

c++ - 处理作用域变量的内部函数

java - 更改 JLabel 的文本,其中文本是另一个类中的统计信息

javascript - "private property"在 ES6 类中意味着什么?

php - 单个抽象函数/抽象重载的多个方法签名

c++ - C和C++中整数计算的溢出

c# - 使用C#列表

c++ - 如何定义矩阵-矩阵乘法,使其也适用于 vectorXvector、vectorXmatrix 和 matrixXvector?

java - 为什么像下面这样的一些方法需要访问修饰符 "static"?