2017-03-04 4 views
-1

これは、例えば、C++ での個人的な用途のためにある:は、どの変数を入力するかをユーザーに選択させる方法はありますか?

class x     
{...}; 
int main() 
{ 

string userinput; 

cin>>userinput; 

cin>>x."userinput";} 

はこの可能のようなものでしょうか?

+0

私はあなたの質問を正しく理解しています。 'class x'に' operator >> 'をオーバーロードする必要があります。 –

+0

私はあなたの質問を正しく理解しています:C++にはランタイムリフレクション機能がないので、そのようなことはできません。 –

+1

ハッシュテーブルを使用できます。変数の代わりにハッシュインデックスを使うだけです – Psi

答えて

0

実行時にユーザーが変数名を設定できるようにしているのであれば、いいえ。 C++では不可能です。あなたが達成しようとしていることに応じて、これを回避する方法がいくつかあります。

あなたはちょうどあなたがする必要がある場合は、switchステートメント、またはif/elseif

の束を使用することができ、手の前に知られているすべては、少数の変数にアクセスできるようにするには、ユーザーが必要な場合コンパイル時に認識されない可能性のある変数の数を多く格納すると、この目的のためだけに存在する多数のデータ構造が存在します。上記には、配列、ハッシュテーブル、リンクされたリスト、および何百ものバリエーションがあります。しかし、これらはすべて単一の答えでカバーするにはあまりにも複雑すぎるトピックです。

+0

いいえ実行時に変数名を設定する必要はありません私が選択した実行時に特定の変数を入力したいと思います。スイッチケースを使う/ if-elseは私が考えたものだったが、よりよい解決策があるかもしれないが、私はここで尋ねた。私はハッシュテーブルを見て、それを実装しようとします。助けてくれてありがとう! – nunya

関連する問題