こんにちは、KiYOです。
システムエンジニア歴20年オーバー。製造現場に特化したシステム開発を主にやってます。
新しい物好きで色々なIT技術を勉強しては、仕事に使って行ってます。

今回はC++について紹介します。
C言語にオブジェクト指向を載せてパワーUPしてます。
- C++の特徴
- C++の歴史
- C++の利用シーン
今回はこの本を参考に、私の独断と偏見で記事を書いています。
言語を5点中評価
容易性 | 容易に言語習得できるか? | 2.5 |
将来性 | 将来性があるか? | 4 |
普及度 | 普及しているか? | 5 |
保守性 | 保守性が高いか? | 3 |
中毒性 | ハマるか? | 5 |
19.5 |

C++の特徴

C言語の速度と機能の強力さを併せ持つプログラミング言語です。
- C++は、Cの拡張として開発された
- Cの良さをそのままに、オブジェクト指向など大規模開発で役立つ機能をふんだんに取り入れている
- 仮想関数、多重定義、他重継承など非常に多くの機能を備えている

C++の歴史

開発者 | Bjarne Stroustup(ビャーネ・ストロヴストルップ) |
誕生 | 1983年に開発 |
公式サイト | http://isocpp.org/ |
分類 | 静的型付け、オブジェクト指向、メタプログラミング |
影響を受けた言語 | C Simula BCPL アセンブリ |
影響を与えた言語 | Java C# D PHP Rust Python Perl |
言語の歴史
1983年 | Cの拡張として1983年にベル研究所の科学者Bjarne Stroustup(ビャーネ・ストロヴストルップ)によって開発される |
Cにクラスなどのオブジェクト指向の機能を追加 | |
仮想関数、テンプレート、例外処理と様々な機能が追加されて進化 |
- C++はCと同等の実行効率と移植性を持つ汎用言語として設計
- Cとできる限りの互換性を持っている
- CとC++を混ぜて使うことも可能
- C++にはテンプレートという機能がある
- 雛形となるコードに、任意の要素を加えられる(他言語のマクロに相当)
- テンプレートを使ったメタプログラミング(*)なども行われる
*プログラムでプログラムそのものに変更を加える手法。例えばコンパイル時に一部のソースコードをコンパイル時の実行を元に差し替えること
- オブジェクト指向は「データそのもの」と、そのデータと関係する「振る舞い」を一つの「オブジェクト」という単位でまとめて扱います
- C++はCにクラスベースのオブジェクト指向を取り込んだ言語
C++は非常に難しい言語の一つと言われています。元のCに加えて、オブジェクト指向やテンプレートなど非常に多くの機能が追加されているからです。
C++は現在も精力的に開発が続けられているため、機能はさらに増えています
C++の利用シーン

OSやデータベース、ブラウザ(Google ChromeやMozilla Firefox)、ゲーム開発といった実行速度が重視されるソフトウェアにC++は欠かせません。Pythonなどに比べるとやや地味ですが、機械学習の分野でも活躍します。
実行速度重視の開発規模が大きいソフトウェア開発では人気があります。
- C++は機能を増やし進化を続ける言語でありながら、シンプルなCの思想を受け継いでいる
- C++はガベージコレクションをデフォルトでは有していない(メモリの明示的な開放が必要)
- C同様やや難しいプログラミング言語と見なされている
- パッケージマネージャなど開発環境が未整備
- C++はCと同じように仕様に対して複数の実装(コンパイラ)が存在している
- Cと共通しており、GCC(g++)、Clang、MSVC(Microsoft Visual C++)の3つ
まとめ:速度を求められるものはC++で!

今回はC++について解説しました。
高い速度を求められるようなシステムやゲームはC++が得意そうですが、C同様に難易度が高そうですね。
- Cの速度と高機能を併せ持つ言語
- Cとの互換性が高く、併用も可能
- 周辺ライブラリの開発も活発
やりたいことを実現するために、C++の使い方をマスタしましょう。
何事も覚えることに遅いことはありません。今日が一番若い日です。行動していきましょう!
以上です。KiYOでした!
今回参考にさせていただいた本はこちらです。今回紹介した言語やその他言語も紹介されているので大変勉強になりました。
Udemyというオンライン講座でもプログラミング学習はできます。 再生速度を早めてみたり、何度も見返すことができるのでおすすめです! 私も色々なプログラムをここで学習しています。
[affi id=2]
まとめページで、他のプログラミングも紹介していますので、ご覧ください。

コメント