gpt4 book ai didi

c++ - 在 C++ 中动态创建对象?

转载 作者:行者123 更新时间:2023-11-27 22:53:59 24 4
gpt4 key购买 nike

看看这段代码,它有一个类,当创建一个新对象时,它会为它提供一个介于 1 到 100 之间的“lvl”随机数。在该类之后,我使用类实例定义了一些对象。

#include <iostream>
#include <cstdlib>

using namespace std;

int main()
{
class newPokemon {
public:
int lvl;
newPokemon() {
lvl = (rand() % 100 + 1);
};
void getLevel() {
cout << lvl << endl;
};
};

newPokemon Gengar;
newPokemon Ghastly;
newPokemon ayylmao;
};

我接下来要做的是允许用户通过询问名称来定义新的口袋妖怪(对象)。但是,这意味着我需要动态创建对象。例如,

程序要求用户输入姓名
然后将名称保存为类 newPokemon
中的对象程序可以使用该名称来运行类中的其他函数,例如 getLevel。

我怎样才能做到这一点?我,当然,知道我不能像硬编码那样做,因为我不能将用户输入作为变量名引用,但是有什么方法可以通过操纵指针或其他东西来完成我要问的事情吗?

最佳答案

使用 std::map 根据名称保存对象:

std::map<std::string, newPokemon> world;

您必须确保您的对象在创建后立即添加到 map

std::string name;
... // ask the user for a name
world[name] = newPokemon();
std::cout << "Your level is " << world[name].getLevel() << '\n';

关于c++ - 在 C++ 中动态创建对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34913094/

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