回答編集履歴

1

追記

2016/06/21 08:04

投稿

Chironian
Chironian

スコア23272

test CHANGED
@@ -9,3 +9,101 @@
9
9
  質問されたいことはこのような内容ではないような気もするのですが、質問が抽象的なので良く分かりません。できるだけ具体的に踏み込んでみて頂けないでしょうか?
10
10
 
11
11
  継承したクラスの例や、#includeで読み込んだクラスの名前を提示頂けると何かアドバイスできるかも知れません。
12
+
13
+
14
+
15
+ ---
16
+
17
+ 【追記】
18
+
19
+ どうもmarimo.さんがおっしゃる「クラスの継承」が、本来の意味と異なっているような気がします。
20
+
21
+ クラスを継承するとは、例えば下記です。
22
+
23
+
24
+
25
+ ```C++
26
+
27
+ // ↓これは基底クラス
28
+
29
+ class Base
30
+
31
+ {
32
+
33
+ public:
34
+
35
+ int BaseX;
36
+
37
+ };
38
+
39
+
40
+
41
+ // ↓Baseを継承したクラス
42
+
43
+ class Derived : public Base
44
+
45
+ {
46
+
47
+ public:
48
+
49
+ int DevivedY;
50
+
51
+ };
52
+
53
+
54
+
55
+ // ↓derivedは、Derivedクラスのインスタンスです
56
+
57
+ Drived derived;
58
+
59
+ ```
60
+
61
+
62
+
63
+ > 1.クラスを継承することのメリットとして、ひとつのインスタンスから多くのメンバーメソッドにアクセスできることなのではないのでしょうか?
64
+
65
+
66
+
67
+ そのような事実はないような気がします。
68
+
69
+
70
+
71
+ クラス自身のメリットは多数ありますが、私はデータ構造とアルゴリズムをセットにできることが一番ありがたいです。
72
+
73
+ そして、クラスを継承することで、派生クラスに基底クラスの機能を取り込みつつ、機能を修正できるのでなかなか便利です。また、ポリモーフィズムもたいへん便利です。
74
+
75
+
76
+
77
+ > 2.機能が違うなら継承はせずに、ヘッダファイルとしておくことで必要なときにincludeをして関数を呼び出す、というイメージであっていますでしょうか?
78
+
79
+
80
+
81
+ 仰りたいことがよく理解できていませんが、たぶん間違っています。
82
+
83
+ 「クラスを継承すること」と「関数呼び出しのためにincludeすること」の間にトレードオフの関係はないと思います。
84
+
85
+
86
+
87
+ 抽象的に物事を考えると混乱します。具体的に考えましょう。
88
+
89
+ そして、ソース・コードはたいへん具体的です。
90
+
91
+
92
+
93
+ mario.さんが考えている「クラスを継承」しているソースを上記のように記述してみてください。
94
+
95
+ 「ひとつのインスタンスから多くのメンバーメソッドにアクセス」している例をソースで提示してみてください。
96
+
97
+ 「機能が違うなら」は何と何の機能が違うのでしょうか?
98
+
99
+ 「継承はせず」のソース(継承しなかった時のソース)を簡単で良いので書いてみて下さい。
100
+
101
+ 「ヘッダファイルとしておくことで必要なときにincludeをして関数を呼び出す」部分も短いソースを提示してみて下さい。ヘッダ・ファイルとそれを#includeして関数を呼び出しているソースの2つです。
102
+
103
+
104
+
105
+ 恐らく具体的に書く過程である程度整理でき、より的確な質問ができるようになると思います。
106
+
107
+ 仮に整理できなかったとしてもソースを提示して質問すれば、ある程度意図が伝わると思います。
108
+
109
+