C++言語
概要
C++言語とは、広く普及しているオブジェクト指向型の高水準プログラミング言語の一つで、C言語を拡張したもの。ハードウェア制御やオペレーティングシステム(OS)の一部など、システムに深く根ざしたプログラムの開発に用いられる。Cにオブジェクト指向関連の仕様などを追加したもので、Cの仕様を引き継いだ上位互換となっており、ほとんどのCプログラムはそのままC++プログラムとしても有効である。高度で抽象的な機能と低水準(ハードウェア寄り)な機能を兼ね備えた汎用的なプログラミング言語として、様々な用途で広く普及している。
Cにはない要素として、クラスの定義や継承などのオブジェクト指向プログラミングのための要素や、関数や演算子のオーバーロード(多重定義)、テンプレート、仮想関数、例外処理、名前空間などが追加されている。プログラムの部品化や再利用がしやすく、複雑・大規模なプログラムを開発するのに向いている。一方で、仕様が肥大化・複雑化しすぎ、プログラムが難解になっているとの批判もある。
Cと同じように、記述したプログラムはコンパイラと呼ばれるソフトウェアによって機械語のプログラムに変換されて実行される。様々なCPUやオペレーティングシステム(OS)向けの開発環境で標準的にC++コンパイラが提供されており、最も対応環境が多い言語の一つとなっている。
C++言語は1983年にAT&T社ベル研究所(当時)のビャーネ・ストロヴストルップ(Bjarne Stroustrup)氏が考案したもので、1998年にISO/IEC 14882として標準化された。日本でも2003年にISO標準を和訳したものをJIS規格(日本工業規格)の一部として標準化している。ISO標準は何度か改訂されており、俗にそれぞれの制定年を取って「C++98」「C++03」「C++11」「C++14」「C++17」「C++20」「C++23」などと呼ばれることもある。
「C++」という名称の由来は、C言語に存在する算術演算子の一つで、整数型の変数の値に1を加えるインクリメント演算子「++」から。Cの仕様を引き継いで機能を拡張した言語は他にもあり、C++と同じくオブジェクト指向的な拡張を施した「Objective-C」が有名である。