簡體   English   中英

在c ++中動態創建對象?

[英]Dynamically create objects in c++?

看一下這段代碼,它具有一個類,當創建一個新對象時,該類將為它提供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';

您可能只希望每個Pokemon都有一個name屬性(成員變量/字段)。 只需制造一堆名稱已填滿的神奇寶貝。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM