回答編集履歴
1
.
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 {
|