これは、1 つの基本クラスの子クラスであるオブジェクトの配列が必要であるという私の最後の質問へのフォローアップです。dynamic_cast を試すように勧められましたが、このプロジェクトでは速度が非常に重要です。
これが本質的に私が求めているものです。
class Object
{
protected:
int id;
};
class Bike: public Object
{
public:
bike();
private:
int bells;
};
class Car: public Object
{
public:
void drive();
private:
int wheels;
};
これらのオブジェクトの配列が必要なので、基本クラスを使用することにしました。
// Imagine I have 10 objects and don't know what they will be
Object* objects[10];
// Let's make the first object
objects[0] = new Car;
動的キャストは良いアイデアだと言われました。問題は、速度が重要であり、次のような操作を行う必要がある場合があることです。
- 8号車はインデックス値3のバイクを参照しています。
dynamic_casting を使用しない他の回避策はありますか?
編集:配列に多数の子クラスを設定した場合、特定のインデックスで子クラスのデータにアクセスするにはどうすればよいですか。言い換えれば、自転車がインデックス 8 にあると想像してください。配列とインデックスだけを使用して、そのオブジェクトから int ベルを取得するにはどうすればよいでしょうか。