私の現在のプロジェクトでは少し問題があります。このプロジェクトは、ファイルからデータ行を取り出し、すべてが基本クラスを継承するクラスオブジェクトの配列を作成することから成ります。私はそれがタイプサブクラスのあるべき配列に新しいオブジェクトを追加すると、正しい、サブクラス以来継承されたクラスオブジェクトの配列を作成するにはどうすればよいですか?
class BaseClass {
// create empty and non-empty constructor
}
class SubClass : public BaseClass {
// create constructor specifically for this class
}
int main() {
BaseClass *array[size];
array[index] = new SubClass();
return 0;
}
がBaseClassの継承:
だから、これは私がこれまで理解して何ですか?
私はプログラムをデバッグしてそのオブジェクトを見ると、私ができる必要がある操作のためのSubClassメソッド/変数を指し示すことができません。私は答えを探していたとき
は今、私は、静的なキャストに出くわしたので、私はの範囲にそれを試してみました:
(static_cast<SubClass*>(array[index])->subclass_variable) = some_value
しかし、それはどちらか動作するようには思えない、これですべてのヘルプは大だろう感謝。そして、あなたがarray[index]->f();
を呼び出すことができます
class BaseClass {
// create empty and non-empty constructor
virtual void f() = 0;
}
class SubClass : public BaseClass {
// create constructor specifically for this class
virtual void f() { std::cout << "I am your SubClass" << std::endl; }
}
:これを処理する
OK、実際の質問は何ですか? –
個別にアクセスして操作できる、継承されたクラスオブジェクトの配列を作成する方法。 –