回答編集履歴
1
書きかけだったので追記
test
CHANGED
@@ -9,3 +9,19 @@
|
|
9
9
|
それを推し進めた結果が、C++ におけるクラスの考え方のもとになっています。
|
10
10
|
|
11
11
|
※実際、C++ は「構造体がメンバ関数を持てる」のです。C++ では構造体は「標準のアクセス制御が public であるクラス」と同義となっています
|
12
|
+
|
13
|
+
|
14
|
+
|
15
|
+
クラスとは、単体で完結したプログラムの部品です。複雑な機械が、分解してみると小さな部品類(歯車だったりバネだったり)の組み合わせであるように、小さな完結したプログラムであるクラスという部品を組み合わせて、複雑なプログラムを作ろうという発想です。
|
16
|
+
|
17
|
+
それぞれのクラスは完結しているから、不必要な情報を外部に漏らしません(アクセス制御による情報の隠蔽)し、それが行うべきことはクラス自体が知っています。
|
18
|
+
|
19
|
+
部品を使う側からしてみれば、部品の中身の細かい動作は知る必要がなく、ただ入出力さえ分かっていればよいのです。
|
20
|
+
|
21
|
+
※例えば、テレビのリモコンでテレビのチャンネルを変えることはできますが、「なぜできるのか」なんて知らなくても使えますでしょ?
|
22
|
+
|
23
|
+
|
24
|
+
|
25
|
+
まあ、これはオブジェクト指向プログラミングの現実から見た答えです。
|
26
|
+
|
27
|
+
もともとのオブジェクト指向はもう少し概念的なものが出てきます。ことにオブジェクト同士が協調するために「メッセージ」をやりとりする、というのが、なかなかに実際のプログラミングではでてこない部分ですね。
|