C++ > オブジェクト指向プログラミング

オブジェクト指向プログラミング(Object-Oriented Programming: OOP)

以下の3つの特色を備えたもの

  • カプセル化
  • ポリモーフィズム
  • 継承

カプセル化(encapsulation)

プログラムコードとデータを組み合わせ、自己完結型の「ブラックボックス」を作成すること。 外部の干渉、誤用を回避する。

  • オブジェクト(object) コードとデータを組み合わせたもの オブジェクト内でのコード、データは公開/非公開のいずれか
  • 非公開(private) オブジェクト外部からのアクセスが不可能
  • 公開(public) オブジェクト外部からもアクセス可能 一般に、オブジェクトの非公開な部分への制御インターフェイスを提供するために使われる

ポリモーフィズム(polymorphism)

1つの名前で複数の動作の汎用クラスを指定すること

  • 関数のオーバーロード(function overloading) 1つの関数名を複数の異なる目的に使用すること
    例)絶対値を求める関数
      C言語:abs(),labs(),fabs():型によって関数を変える必要がある
      C++ :abs():実行されるデータ型によって変わる
  • 演算子のオーバーロード(operator overloading) 数値演算は整数、浮動小数点数、文字などあるが、どの演算を実行するかはコンパイラで判断される

継承(inheritance)

1つのオブジェクトが他のオブジェクトの性質を引き継ぐこと。

  • 階層的な分類(hierarchical classification) オブジェクトの共通する性質を階層的に分類する
    例)
    
     家⊂建物⊂人工物


参考文献

  • 独習C++ 第3版(Herbert Schildt,2002,翔泳社)
最終更新:2011年03月04日 14:10