2. C++ について¶
2.1 特徴¶
- コンピュータの性能を最大限に引き出すソフトウェアの開発が得意なプログラミング言語。
- 世界中のパソコンやスマートフォン、ゲーム機や家電、企業や工場、大学、研究所で動くソフトウェアの開発に使われている。
- C++ は比較的難易度の高い言語であるが、利用者が多いことからドキュメントや参考資料を見つけやすく、学習しやすい。
2.2 歴史¶
- デンマーク生まれのコンピューター科学者 Bjarne Stroustrup(ビャーネ・ストラウストラップ)博士によって 1980 年代に最初のバージョンが発表。
- 当時使われていたプログラミング言語「C(シー)」を改良した新しい言語であるため「C++」という名前が付けられた。
- その後多くの専門家によって進化や改良が重ねられ、現在では世界で 450 万人以上が C++ を使ってソフトウェアを開発。
- 近年は、3 年ごとに新機能を追加するバージョンアップが行われている。バージョンを区別するために、発表年の下 2 けたをとって「C++17」のように呼ぶことがある。
- 新しいバージョンほど、複雑なプログラムをわかりやすいコードで記述できる。
- とくに C++11 で重要なアップデートが行われて C++ の書き方が大きく変わったため、C++11 以降を、「現代的な C++」を意味する「モダン C++」と呼んで区別することがある。
C++ のバージョン | 発表年 |
---|---|
C++98 | 1998 年 |
C++03 | 2003 年 |
C++11 | 2011 年 (これ以降が「モダン C++」) |
C++14 | 2014 年 |
C++17 | 2017 年 |
C++20 | 2020 年 |
C++23 | 2023 年 |
出版年が古い入門書や参考資料は、モダン C++ で書かれていないことがあるため注意が必要。しかし、古いバージョンの書き方でも、最新のバージョンとほぼ 100% の互換性を保っているため、まったく動かなくなる心配はない。
2.3 用途¶
C++ が使われている有名なソフトウェアやシステムには、次のような例がある。
ソフトウェア・システム | 説明 |
---|---|
Windows | オペレーティングシステム |
Google Chrome | Web ブラウザ |
Photoshop | 画像編集ソフト |
Arduino | マイクロコンピュータの開発環境 |
Microsoft Office | 文書作成・表計算ソフト |
Unreal Engine | ゲームエンジン |
ゲーム | Nintendo Switch や PS4 / PS5, Xbox で動くゲーム |
大規模 Web サービスのバックエンド | Google や YouTube, Facebook, Amazon などのサーバーやデータベース |
自動運転システム | |
ロボット制御システム | |
金融取引システム | |
プログラミング言語のコンパイラ | C++, Swift など |
高性能計算アプリケーション | 科学計算、シミュレーション |
電子系設計作業自動化(EDA)ツール |
C++ は、これ以外にも、AtCoder や情報オリンピック、ICPC など競技プログラミングの分野においても人気がある。
2.4 学習資料¶
独習 C++ 新版¶
独学のための十分なサンプルと説明が掲載されている入門書で、C++11 ~ C++17 の機能も多く登場する。
[改訂第5版]C++ ポケットリファレンス¶
基本文法の解説に加え、逆引き形式で標準ライブラリの幅広い機能を紹介している。C++23 に対応し、2024 年時点で最も新しい日本語の C++ 解説書。
オンライン資料¶
- cpprefjp ― C++ のリファレンス
- cppreference.com ― C++ のリファレンス(英語)
2.5 おもな開発ツール¶
- Visual Studio 2022 Community: ― Windows 向けの統合開発環境
- Xcode ― macOS 向けの統合開発環境
- Wandbox ― オンラインで C++ プログラムを実行できるサービス