※ ChatGPTを利用し、要約された質問です(原文:複数の派生クラスオブジェクトを一括して取り扱う方法)
C++で派生クラスオブジェクトを一括して取り扱う方法
このQ&Aのポイント
C++で派生クラスオブジェクトを一括して取り扱う方法を探しています。
現在の方法ではコーディング量が非常に増えて非効率的です。
同じクラスなので、一括して検索できる方法を知りたいです。ポインタを取得してから操作する予定です。
複数の派生クラスオブジェクトを一括して取り扱う方法
いつもお世話になっています。
C++でプログラムをしています。
classAの派生クラスとして、
classA-1、classA-2を作りました。
classAのオブジェクトには、
親クラスにおいて、重複しないIDを
定義しています。
classA{...}
classA-1():public A
classA-2():public A
classA-1 A1[1000];
classA-2 A2[2000];
ここで、クラスAオブジェクト
(派生クラスを含む)のうち、
特定のIDのオブジェクト、
例えば、ID=100番のものを
取り出して、何某かの処理をしたいのですが、
現在は、
for(i=0;i<1000;i++){
if(A1[i] == 100){...}
}
for(i=0;i<2000;i++){
if(A2[i] == 100){...}
}
のようにしています。
しかし、派生クラスの種類が増えてくると、
この方法はコーディング量が非常に増えて
非効率的です。
プログラム上も美しくありません。
できれば、
同じクラスなのですから、
for(i=0;i<1000;i++){
if(A[i] == 100){...}
}
のような形で一括して検索するようにしたいのです。
つまり1つの配列変数で
両方を扱えるようにしたいのです。
ただし、当該IDを持つ、ポインタさえ取得できれば、
それぞれの派生クラスに型キャストしてから
操作するつもりです。
target = (classA-2)A[5];
target.Action();
どなたか、参考URL、キーワード、アドバイス等
頂ければ助かります。
よろしくお願いします。
よろしくお願いします。
としており、効率的ではなくなってしまいます。
お礼
連絡が遅くなってすみません。 ご教示ありがとうございます。 おかげさまで、うまくいきました。 基底クラスで変数宣言しておけば使えるなんて クラスのすばらしさをまた実感しました。 どうもありがとうございました。