回答編集履歴
1
間違い修正
test
CHANGED
@@ -4,7 +4,13 @@
|
|
4
4
|
|
5
5
|
仮想関数を持つクラスはインスタンスを持てません。つまりPhoneクラスは別のクラスの基底クラスとなって初めて使用できるクラスになります。
|
6
6
|
|
7
|
+
(訂正)「純粋仮想関数」の間違いです。単にvirtual修飾だとインスタンス作成できますね。訂正します。オーバーライドする関数にvirtualをつけるかつけないか、という点では「つけた方が意図しない不具合に悩まされない」と思います。ただ、virtualをつけるとその分呼び出しコストがかかるのは間違いないです。
|
8
|
+
|
9
|
+
|
10
|
+
|
7
11
|
PhoneクラスでShowData()が実装されていれば、Phoneクラスはそれだけでインスタンスを作ることができるので場面によっては単独で使用することができます。
|
12
|
+
|
13
|
+
(訂正)こちらも「純粋仮想関数」の場合です。すみません。
|
8
14
|
|
9
15
|
|
10
16
|
|
@@ -26,6 +32,4 @@
|
|
26
32
|
|
27
33
|
|
28
34
|
|
29
|
-
上記のようにクラス設計の段階で基底クラスをどう扱うか決めてあれば特に悩むこともないと思います。
|
30
|
-
|
31
|
-
もし、悩むような状況になった場合、一度クラス設計を根底から見直してみることもいいかもしれません。
|
35
|
+
上記のようにクラス設計の段階で基底クラスをどう扱うか決めてあれば特に悩むこともないと思います。もし、悩むような状況になった場合、一度クラス設計を根底から見直してみることもいいかもしれません。
|