【しーぷらすぷらす】

C++ とは?

最終更新:
💡 処理の効率と、複雑なコードの整理を両立する言語

C言語を土台に、クラスやテンプレートなどを備えて発展した汎用プログラミング言語。データの抽象化と実行効率を重視し、システムや組み込みソフトウェアなどに使われる。

📌 このページのポイント
効率と抽象化を重視するC++ f(x) 関数で処理を書く クラス T テンプレート C++ 実行効率・資源管理 速さは実装や処理内容にもよる
関数・クラス・テンプレートを使い分け、資源の扱いも設計する。
ひよこ ひよこ
C++は、Cに何を足した言語なの?
ペンギン先生 ペンギン先生
Cを土台に、クラスによるデータの抽象化やオブジェクト指向、テンプレートによる汎用的なプログラミングなどを備えて発展した言語だよ。単にCへクラスを足しただけと考えると、特徴を捉えきれないんだ。
ひよこ ひよこ
必ずオブジェクト指向で書くの?
ペンギン先生 ペンギン先生
必須ではないよ。関数中心に書いたり、型などをパラメーターにするテンプレートを使ったりもできる。問題の構造に合わせて、複数の書き方を使い分けられるんだ。
ひよこ ひよこ
どんな分野で使うの?
ペンギン先生 ペンギン先生
機器の資源を効率よく扱うシステムや組み込みソフトウェア、複雑な基盤コードなどで強みがあるよ。用途が広い汎用言語だけれど、その分野ならC++が必須という意味ではないんだ。
ひよこ ひよこ
ほかの言語より、必ず速い?
ペンギン先生 ペンギン先生
速さは処理内容やアルゴリズム、実装、コンパイラーなどによるよ。実行効率を重視した設計ではあるけれど、言語名だけで性能は決まらない。必要な処理を測定して確かめるんだ。
ひよこ ひよこ
メモリの解放は、全部自分で書くの?
ペンギン先生 ペンギン先生
クラスのデストラクターで資源を解放する仕組みや、コンテナー、スマートポインターなどを使えるよ。ただし危険なポインター操作なども可能なので、使えば自動的にすべて安全になるわけではないんだ。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「C++」って出てきたら「実行効率とコードの抽象化を重視する汎用言語」と思えばだいたいOK!
📖 おまけ:英語の意味
「C++」 = シープラスプラス
💬 Cのインクリメント演算子++にちなみ、Cからの発展を表す名前だよ。Rick Mascittiが1983年に提案した。設計者はBjarne Stroustrupで、前身のC with Classesの開発は1979年に始まったんだ。

参考資料

← 用語集にもどる