C++ 如何获取类中的特定对象
C++ How to get a specific object in a class
我想在C++的类中获取特定对象。我查看了多个网站,似乎我的问题很独特。好的,这是我的代码。
在房子里。
#include <string>
using namespace std;
class House
{
string Name;
int Health;
public:
House(string a, int h);
void GetHouseStats();
void DamageHouse(int d);
~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()
{
}
在源中.cpp
#include <iostream>
#include "House.h"
using namespace std;
int main()
{
House Kubo("Bahay Kubo", 2);
Kubo.DamageHouse(1);
}
我以久保家为我的第一个对象。我想将人的房屋保存到文件中,但我的问题是如何将对象的名称传递到函数中,以便将其数据保存到文件中?我可以手动放置久保并这样做
PlayerHouse = Kubo.Name;
但是,如果我不知道应该保存哪所房子怎么办?喜欢而不是打字
PlayerHouse = Apartment.Name;//2nd house
PlayerHouse = Modern.Name;//3rd house
我可以使用函数参数将对象的名称放入玩家之家吗?喜欢这个
void SetHouseName(type object){
PlayerHouse = object.Name;
}
可以
做到这一点的几种方法..是将所有创建的对象保存在容器中,然后访问容器以获取对象并传递给它一个函数,该函数将其写入文件。
此外,如果您不想维护容器,您提到的有关使用该函数的内容也可以正常工作
当然
,但是如果你无论如何都要保存房子的Name
,为什么不首先要求一个std::string
,然后将Name
传递给那个函数呢?
void SetHouseName(std::string name)
{
PlayerHouse = name;
}
如果这在您的House
类之外,则需要创建一个方法来公开House
的Name
成员,或者只是将其设为public
。
为了回答您最初的问题,就像如何传递内置类型一样,您可以对House
类型执行相同的操作:
void SetHouseName(House house)
{
PlayerHouse = house.Name;
}
相关文章:
- 如何在新的派生对象中获取基本对象的数据?
- 数组中不同类型的对象并获取每个对象的类型
- 只需调用对象即可获取对象数据
- C++遍历对象并获取其地址
- SFML 2.4.2 在绘制 sf::Text 对象之前获取本地边界
- 如何从对象中获取公共常量?
- 如何从对象中获取对元组尾部的引用 std::tuple<Head,Tail...>
- 如何在C++中从tm对象中获取星期几
- C++ std::map 如何在每次调用类对象时获取新的 map 对象
- 从文件读取对象并获取错误
- 如何从静态对象中获取该对象的值
- 如何从 boost::interprocess::managed_shared_memory 对象中获取 shmid
- 复制构造函数不从类对象中获取数组大小
- C++:: 模板函数 - 从对象函数获取对象的地址
- 提升shared_ptr对象在获取值时遇到问题
- 从QR对象中获取R矩阵
- 从gdiplus (GDI+)中的设备上下文或图形对象中获取图像/位图
- 如何从对象中获取stl容器的类型
- c++:是否有可能从重载<<的对象中获取std::string ?操作符
- 如何在对象上获取一个方法,以便将其作为C样式回调传递