私はCellという名前の基本クラス(このクラスのオブジェクトへのポインタを持つ他のクラス)と、3つの派生クラスCellA、CellB、CellCを持っています。セルが死んだ場合、ポインタはセルを指し、他の場合は生きている(A、BまたはC)。この瞬間にポインタが何を指し示しているのかを知る方法は?基本クラスポインタを指しているオブジェクトのタイプを知るにはどうすればよいですか?
0
A
答えて
1
クラスが多型である場合dynamic_castを使用できます。
dynamic_cast
は、安全にダウンキャストポインタを使用できます。
dynamic_cast
を使用して、Baseクラスのポインタが派生インスタンスを指しているかどうかを確認することができます。dynamic_cast
はその情報を報告することができます。
1
多分あなたは少し異なるロジックが必要です、私はそれがあなたを助けることができると思う州のデザインパターンを見てください。通常、キャスティングは悪いことであり、避けるべきです。あなたがキャストを必要とするなら、あなたはおそらく
グッドラック、実行時にオブジェクトを知っている
+0
ありがとう、しかし、そのdesingは私の先生によって作成されたミニ地獄ですxDDD – freinn
0
使用dynamic_case
またはtypeid()
....設計上の問題を持っている...
関連する問題
- 1. 未知の派生クラスポインタへの基本クラスポインタの変換
- 2. オブジェクトのタイプを確認するにはどうすればよいですか?
- 3. Notyプラグインで基本的な通知を受け取るにはどうすればよいですか?
- 4. Railsで基本クラスを使用してSTIを無視するにはどうすればよいですか?
- 5. タイプに基づいてジェネリッククラスのリストを設定するにはどうすればよいですか?
- 6. Haskellの入力値に基づいてタイプを制限するにはどうすればよいですか?
- 7. 文書をXSLTスタイルシートのパラメータのタイプとして指定するにはどうすればよいですか?
- 8. Swiftでは、クラスポインタは常に親を指していますか?
- 9. プロダクションのタイプに基づくトークンのタイプを変更するにはどうすればよいですか?
- 10. Androidで新しいナビゲーションドロワーの基本動作を設定するにはどうすればよいですか?
- 11. タイプのいずれかが不要なジェネリックタイプを指定するにはどうすればよいですか?
- 12. 基本クラスの変数を返して削除するにはどうすればよいですか?
- 13. PHPセッションを使用して基本ACLを実装するにはどうすればよいですか?
- 14. 8086アセンブリを使用して基本電卓を作成するにはどうすればよいですか?
- 15. Reflectionを使用してオブジェクトの汎用タイプを検査するにはどうすればよいですか?
- 16. Android - 基本クラスを作成して使用するにはどうすればよいですか?
- 17. FCM、通知タイプのメッセージ、Gmailのようにグループ化するにはどうすればいいですか?
- 18. オブジェクトの基本タイプをすべて印刷するには?
- 19. FPのタイプはOOPのオブジェクトと基本的にどのように異なっていますか?
- 20. タイプをマップキーとして使用しないようにするにはどうすればよいですか?
- 21. C++の基本クラスポインタ、コレクションクラス
- 22. 指定したジェネリックタイプでfuncのタイプを作成するにはどうすればよいですか?
- 23. 基本クラスから派生し、C#でインターフェイスを実装するにはどうすればよいですか?
- 24. DataTemplateのDataContextオブジェクトに基づいてViewModelを作成するにはどうすればよいですか?
- 25. オブジェクトのプロパティに基づいてセットをソートするにはどうすればよいですか?
- 26. 基本値なしでCGFloatの最大値を取得するにはどうすればよいですか?
- 27. 基本的なJSONオブジェクトを解析するときにGSONがnullを返さないようにするにはどうすればよいですか?
- 28. 日にちに基づいてDateTimeオブジェクトを作成するにはどうすればよいですか?
- 29. 基本クラスのインスタンスを作成する方法をブロックするにはどうすればよいですか?
- 30. IISが本当に自分のHTMLを圧縮しているかどうかを知るにはどうすればよいですか?
は、仮想 'IsAlive'方法を持っています。 –
あなたの物語の "ポインタ"は誰ですか? –