C++
読み方:シープラスプラス,シープラプラ
別名:C++言語,C with Classes
【英】C Plus Plus, C++ programming language
C++とは、AT&Tベル研究所のビャーネ・ストロヴストルップにより、C言語の拡張仕様として作成された、コンパイル型の汎用プログラミング言語のことである。
C++では、C言語にクラス定義のようなオブジェクト指向プログラミングの要素が追加された言語仕様となっている。C言語との下位互換性を保っているため、C言語でできることは全てC++でも実現可能である。C++は実行時に型が決定されている静的な型システムを用いているため、SmalltalkやRubyのような他の純粋なオブジェクト指向言語と比べて、柔軟性には欠けるものの、実行速度は低下しにくい、という性質を持つ。
C++は多機能かつ汎用的であり、それまでC言語が採用されていた領域をカバーできることに加えて、オブジェクト指向の特徴であるプログラムの再利用性が活用できるため、大規模な開発にも適しているとされる。C++は、オペレーティングシステム(OS)をはじめとするシステムプログラムから、組み込みシステム、デスクトップアプリケーションなど、多様な用途において採用されている。例えば、Windowsのアプリケーションにおいては、Visual BasicやC#と並び、C++がアプリケーション記述用の主要な言語となっている。
C++は、C言語の機能に加えて、クラス定義、多重継承、仮想関数、多様性、メソッドの多重定義、テンプレート(総称プログラミング)、例外処理、といった機能が追加されている。とりわけ多重継承をサポートしている点は大きな特徴であると言える。SmalltalkやJavaなどのオブジェクト指向のプログラミング言語では、単一継承と呼ばれ、一つの親クラスしか定義できない仕様になっているが、C++では多重継承により、あるクラスの親クラスを複数持つことが可能となっている。
通常C++のソースファイルの拡張子には「.cpp」が、同じくインクルードされるヘッダファイルの拡張子には「.hpp」が付く。
C++は、1980年前後に、C言語をベースに、Simulaのクラス機能を追加したプログラミング言語として開発された。当初の名称は「C with Classes」といった。C++の処理系は当初、C言語に対するプリプロセッサとして作成されたため、C++のソースコードを処理すると、C言語のソースコードを吐き出す形となっていた。C++は1998年にISO/IEC 14882:1998、2003年にISO/IEC 14882:2003として標準化されている。なお、C++のテンプレート機構を用いたコンテナとアルゴリズムを実装した標準ライブラリとしてはSTL(Standard Template Library)が規定されており、またC++標準にも影響を与えている強力なライブラリとしてBoost C++ Librariesがある。
C++は、その仕様の規模の大きさや複雑さから、マスターするのが最も困難な言語の一つとされる。それゆえ、熱烈な支持者も多い。他面、C++における反省が、よりスマートなオブジェクト指向言語としてのJavaやC#の誕生を促したとも言われている。
|