手続き型プログラミング:
今までのプログラミング方針のように、「データ+関数+アルゴリズム」でデータをどのように処理するかを順次書いていく手法 データを型やデータ構造で表し、関数でデータを処理する。
オブジェクト指向プログラミング:
問題に登場するモノや現象などを、抽象的に「属性と機能」を持ったオブジェクトとしてモデル化し、その登場人物やモノのの振る舞いを記述していく手法 問題に登場するモノをメンバ変数とメンバ関数によるクラスで表し、クラス同士の振舞の相互作用(メンバ変数による機能の呼び出し)で処理していく
カプセル化については、結構たくさん説明してきたから大丈夫だよね?と思います。
ここでは、継承にいて説明します。
まず、用語の整理。
クラスは、オブジェクトの設計図です。
クラス(設計図)を実体化(インスタンス化)したものがオブジェクトになります。C++ではクラスのインスタンス=オブジェクトだと思って良いと思います。
(広い意味で、学術的な説明をするとちょっと変わってくるんだけど、みんながC++を使う分にはそう思ってて問題ないと思います)
クラス => インスタンス(=オブジェクト) 哺乳類クラス => 犬 哺乳類クラス => 猫 哺乳類クラス => 狸