回答編集履歴

1

.

2023/09/05 02:05

投稿

int32_t
int32_t

スコア21927

test CHANGED
@@ -5,6 +5,8 @@
5
5
  `dynamic_cast` は遅いとかコードサイズが増えるとか参照で使いにくいとかで避けられがちな印象です。私が仕事で関わったC++のプロジェクトではすべて RTTI が禁止されていたので `dynamic_cast` は使えませんでした。
6
6
 
7
7
  `dynamic_cast` に限らずキャストはできるだけ避け、`virtual` 関数で何とかする方が好まれる気がします。
8
+
9
+ 一例:
8
10
  ```c++
9
11
  class GameObject {
10
12
  virtual IShadable* AsShadable() {
@@ -12,7 +14,8 @@
12
14
  }
13
15
  }
14
16
 
15
- // private継承も微妙なので、IShadable の実装は別クラスにしたほうがいいかも
17
+ // private継承も微妙なので、ModelObject用の IShadable の実装は
18
+ // 別クラスにしたほうがいいかも
16
19
  class ModelObject : public GameObject, private IShadable {
17
20
  ...
18
21
  IShadable* AsShadable() override {