2016-11-10 2 views
-1

宣言することができます。C++でユーザーが入力した名前を使用してクラスのオブジェクトを宣言するにはどうすればよいですか?私たちは、クラスを定義した後、たとえばクラスのゲームのために、主な機能には、私たちは、このように

int main(){ 
    Game Mario; 
    Game GameXXX; 
} 

私は、ユーザー入力名を使用してオブジェクトを宣言することができますかしら?私が意味することは次のようなものです:

int main(){ 
    string objectName; 
    cout<<"Enter a name for an object:\n"; 
    cin >> objectName; 
} 

私はどのようにオブジェクトの名前としてその "objectName"を使用できますか?

Game objectName; 
+0

代わりにランタイムベースの代替手段を使用してください。ユーザーが入力した値をキーとして、オブジェクトのマップを作成します。ユーザーが入力した後に変数の名前を付けることはできません。変数名は、そのオブジェクトへのコンパイル時参照のみです。 –

+0

これで、次のステップに移ります。コードは、ユーザーが指定した変数をどのように使用するのでしょうか?名前がオブジェクト内のデータであるように思えます。 – John3136

答えて

1

カンネが行われます。名前は、コンパイラがオフセットまたは生のメモリアドレスまでストリップするプログラマにとって便利です。実行時にそれらのかなりの名前はすべてなくなっています。

あなたは行う実行(または作成して実行)する

std::map<std::string, Game> games; 

ので、あなたが

games[objectName].playgame(); 

をすることができますマッピングされGameインスタンスは何であることができます。

games.at(objectName).playgame(); 

ユーザーが不明なゲームを入力した場合にプログラムを起動させたい場合は、

関連する問題