C ++如何在类中获取特定对象

时间:2017-01-05 09:34:34

标签: c++ visual-studio-2015

我想在C ++中的类中获取特定对象。我查看了多个网站,看来我的问题很独特。好的,这是我的代码。

在House.h中

#include <string>
using namespace std;
class House
{
    string Name;
    int Health;
public:
    House(string a, int h);
    void GetHouseStats();
    void DamageHouse(int d);
    ~House();
};
在House.cpp中

#include "House.h"
#include <iostream>

House::House(string a, int h)
{
    Name = a;
    Health = h;
}
void House::DamageHouse(int d) {
Health -= d;
cout << "Your " << Name << " has " << Health << " left."<<endl;
}
void House::GetHouseStats() {
    cout << Name<<endl;
    cout << Health;
}
House::~House()
{
}

在Source.cpp中

#include <iostream>
#include "House.h"
using namespace std;

int main()
{
    House Kubo("Bahay Kubo", 2);
    Kubo.DamageHouse(1);

}

我将House Kubo作为我的第一个对象。我想将这个人的房子保存到一个文件中,但我的问题是如何将对象的名称传递给函数以便将其数据保存到文件中? I可以手动放置Kubo并按

进行
PlayerHouse = Kubo.Name;

但如果我不知道应该保存哪个房子呢?喜欢而不是打字

PlayerHouse = Apartment.Name;//2nd house
PlayerHouse = Modern.Name;//3rd house

我可以使用函数参数将对象的名称放入PlayerHouse吗?喜欢这个

void SetHouseName(type object){
    PlayerHouse = object.Name;
}

2 个答案:

答案 0 :(得分:1)

可以做到这一点的几种方法是将所有创建的对象保存在容器中,然后访问容器以获取对象并向其传递一个函数,该函数将其写入文件。

此外,如果您不想维护容器,您提到的有关使用该功能的内容也将正常工作

答案 1 :(得分:0)

当然,但是如果你打算保存房子的Name,为什么不首先要求std::string然后通过{Name 1}}到那个功能?

void SetHouseName(std::string name)
{
  PlayerHouse = name;
}

如果这不在您的House课程之内,您需要创建一种方法来公开Name成员[{1}},或者只是将其House

要回答您的初始问题,就像传递内置类型的方式一样,您可以对public类型执行相同的操作:

House