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

削除された内容 追加された内容
「Cの基礎知識」の節を作成
51 行
 
=== カプセル化 ===
'''カプセル化'''(encapsulation)とは、
データとそれを操作する手続きを一体化して「オブジェクト」として定義し、
オブジェクト内の細かい仕様や構造を外部から隠蔽することである。
<ref>[http://e-words.jp/w/%E3%82%AB%E3%83%97%E3%82%BB%E3%83%AB%E5%8C%96.html カプセル化とは|encapsulation - 意味/定義 : IT用語辞典]</ref>
 
手続きとデータを一体化し、
手続きによってしかデータを操作できないようにすることで、
ブラックボックスなオブジェクトを作成し、
独立性を高める。
 
カプセル化では、
データと手続きを、
'''非公開'''(private)と'''公開'''(public)に分けて、
オブジェクトの外部からは、
非公開のものにはアクセスできず、
公開のもののみにアクセスできるようにする。
 
カプセル化によって、保守性や開発効率を挙げることができ、
コードの再利用も簡単になる。
 
=== ポリモーフィズム ===
'''ポリモーフィズム'''(polymorphism、多相性、多態性、多様性)とは、
同名のメソッドや型などをオブジェクトの種類に応じて使い分けることができる性質のことである。
<ref>[http://e-words.jp/w/%E3%83%9D%E3%83%AA%E3%83%A2%E3%83%BC%E3%83%95%E3%82%A3%E3%82%BA%E3%83%A0.html ポリモーフィズムとは|polymorphism|ポリモルフィズム|多相性 - 意味/定義 : IT用語辞典]</ref>
 
ポリモーフィズムでは、
同一の名前で複数の異なる動作を作成し使うことができる。
 
例えば、Cで絶対値を求めるには、
引数のデータ型に合わせて、
abs(), labs(), fabs()の3つの関数を使い分ける必要がある。
一方、C++で絶対値を求めるには、
引数がどのデータ型であっても、
abs()という1つの関数で求めることができる。
 
このように1つの関数名を複数の異なる目的で使うことを、
'''関数のオーバーロード'''(function overloading)という。
 
ポリモーフィズムの利点は、
メソッド名を統一することで、
記述ミスを減らせるなどが挙げられる。
 
=== 継承 ===
'''継承'''(inheritance)とは、
既に定義されているクラスをもとに、拡張や変更を加えた新しいクラスを定義することである。
<ref>[http://e-words.jp/w/%E7%B6%99%E6%89%BF.html 継承とは|inheritance|インヘリタンス - 意味/定義 : IT用語辞典]</ref>
 
継承を使うことで、
あるものの性質を受け継ぎ独自の機能を追加することができる。
 
例えば、哺乳類を継承し人、犬、猫を新たに作るといったことができる。
 
継承では、
異なる部分だけを新たに作るだけでよく、
コードの再利用が可能になる。
 
== コンソール入出力 ==