「C++/C++特有の概念」の版間の差分

削除された内容 追加された内容
→‎要点: cout を「改善」と考えてるのは残念ながら、C++とJavaくらい。他の多くの言語はそう考えてないのが現実。
→‎オブジェクト指向: カプセル化などC++限定の話であり、オブジェクト指向言語 全般の話ではないので、修正。 JavaScriptとか、どうなる?あとLinuxカーネルは標準Cなので、今も構造化プログラミング言語は現役の手法。
174 行
<ref>[http://e-words.jp/w/%E3%82%AA%E3%83%96%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E6%8C%87%E5%90%91%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0.html オブジェクト指向プログラミングとは|OOP|Object Oriented Programming - 意味/定義 : IT用語辞典]</ref>
 
プログラミングでは、どんどん複雑になっていくプログラムに対応するために、新しい手法が次々と作られてきた。
プログラミングでは、
どんどん複雑になっていくプログラムに対応するために、
新しい手法が次々と作られてきた。
 
最初は、フロントパネルのスイッチをオンオフすることによって、ごく短いプログラムが作成された。
ごく短いプログラムが作成された。
 
次に、アセンブリ言語によって、より長いプログラムが作成できるようになった。
より長いプログラムが作成できるようになった。
 
そして、1950年代、最初の高レベル言語(FORTRAN)が開発されたことによって、数千行にわたるプログラムが作成できるようになった。
しかし、何でも許される方式であったため、大きなプログラムを書こうとすると、読みづらく保守しにくい「スパゲティコード」となってしまった。
数千行にわたるプログラムが作成できるようになった。
しかし、何でも許される方式であったため、
大きなプログラムを書こうとすると、
読みづらく保守しにくい「スパゲティコード」となってしまった。
 
1960年代には、'''構造化プログラミング言語'''(structured programming language)の登場で、スパゲティコードを排除し、五万行に及ぶプログラムを作成し、保守できるようになった。
スパゲティコードを排除し、
五万行に及ぶプログラムを作成し、保守できるようになった。
Cも広い意味では構造化プログラミング言語である。
構造化プログラミング言語では、
制御構造を使い、プログラムを構成要素に分割して記述する。
 
Cも広い意味では構造化プログラミング言語である。構造化プログラミング言語では、制御構造を使い、プログラムを構成要素に分割して記述する。
しかし、構造化プログラミング言語も、
プログラムの長さが一定に達すると限界に達する。
そこで、オブジェクト指向プログラミングでは、
前述したとおり、
プログラムを自己完結したオブジェクトとして記述することで、
複雑さを軽減し、
より巨大なプログラムを記述できるようにした。
 
しかし、構造化プログラミング言語も、プログラムの長さが一定に達すると限界に達するだろうと危惧されるようになった(しかし現実は2020年でも、たとえばLinuxのカーネルは標準C言語で記述されているが)。
オブジェクト指向プログラミングには、
 
カプセル化、ポリモーフィズム、継承の3つの特色がある。
オブジェクト指向プログラミングでは、前述したとおり、プログラムを自己完結したオブジェクトとして記述することで、複雑さを軽減し、より巨大なプログラムを記述できるようにした。
 
C++におけるオブジェクト指向プログラミングには、カプセル化、ポリモーフィズム、継承の3つの特色がある。
これらについて説明していく。