IT用語解説

C++ 【シープラスプラス】

【言語】プログラム言語のことです

【オープン系・業務系】

C++とは:

 C++(シープラスプラス)は、汎用プログラミング言語の一つである。日本では略してシープラプラ、シープラなどとも呼ばれる。
 1983年にベル研究所のコンピュータ科学者のビャーネ・ストロヴストルップが、C言語の拡張として開発した。当時の名前は「C with Classes」(クラス付きのC言語)だった。拡張はクラスの追加に始まり、仮想関数、多重定義、多重継承、テンプレート、例外処理といった機能が続いていった。1990年代以降、C++は、最もよく利用される商用のプログラミング言語の一つとなっている。

 

C++の用途:

 C言語に、オブジェクト指向プログラミングをはじめとする様々なプログラミングパラダイムをサポートするための改良が加えられたものといえる。
ただし、他のプログラミング言語と違い、旧来のCと同様に手続き型言語としても扱えるという特徴がある。このことから、C++をbetter Cというふうに呼ぶことがある。すなわち、基本的にC言語に対して上位互換性がある。初期のC++はCへのトランスレータとして実装され、C++プログラムを一旦Cプログラムに変換してからコンパイルしていた。
 次のような多種多様な機能を持っており、言語仕様は大変複雑である。言語仕様を完全に満たしているコンパイラは、CコンパイラでもC90時代のWatcom程度で、もともと数えるほどしかない。

・多重継承
・テンプレート
・演算子のオーバーロード
・例外処理
・実行時型情報 (RTTI)

主なC++の処理系:

・Visual C++
・Borland C++、C++ Builder
・g++
・Intel C++ Compiler
・Clang

C++使用における注意点:

 C++は静的な多態と動的な多態の両方をサポートする。コンパイル時に解決される静的な多態は実行時には考慮されないのに対し、ランタイム時に解決される動的な多態はパフォーマンス的に不利である。

静的な多態:
関数のオーバーロードは名称が同じ複数の関数を宣言できる機能である。ただし引数は異なっていなければならない。関数は引数の型や数で区別される。同名の関数はコードの文脈によってどの関数が呼ばれるのかが決まる。関数の戻り値の型で区別することはできない。

動的な多態:
基底クラスへのポインタ変数及び参照は、正確に型が一致するオブジェクトだけでなく、その派生クラスのオブジェクトを示すことができる。これにより配列やコンテナは複数の型へのポインタを保持できる。ポインタ変数は実行時に値が割り当てられるためこれは実行時の話である。

C++習得における仕事:

SE、大規模なソフトウェア開発

前のページに戻る