2012-03-10 7 views
0

私はCellという名前の基本クラス(このクラスのオブジェクトへのポインタを持つ他のクラス)と、3つの派生クラスCellA、CellB、CellCを持っています。セルが死んだ場合、ポインタはセルを指し、他の場合は生きている(A、BまたはC)。この瞬間にポインタが何を指し示しているのかを知る方法は?基本クラスポインタを指しているオブジェクトのタイプを知るにはどうすればよいですか?

+1

は、仮想 'IsAlive'方法を持っています。 –

+0

あなたの物語の "ポインタ"は誰ですか? –

答えて

1

クラスが多型である場合dynamic_castを使用できます。
dynamic_castは、安全にダウンキャストポインタを使用できます。
dynamic_castを使用して、Baseクラスのポインタが派生インスタンスを指しているかどうかを確認することができます。dynamic_castはその情報を報告することができます。

1

多分あなたは少し異なるロジックが必要です、私はそれがあなたを助けることができると思う州のデザインパターンを見てください。通常、キャスティングは悪いことであり、避けるべきです。あなたがキャストを必要とするなら、あなたはおそらく

グッドラック、実行時にオブジェクトを知っている

+0

ありがとう、しかし、そのdesingは私の先生によって作成されたミニ地獄ですxDDD – freinn

0

使用dynamic_caseまたはtypeid() ....設計上の問題を持っている...

関連する問題