【プログラミング言語】C++

当ページのリンクには広告が含まれています。

こんにちは、KiYOです。

システムエンジニア歴20年オーバー。製造現場に特化したシステム開発を主にやってます。

新しい物好きで色々なIT技術を勉強しては、仕事に使って行ってます。

KiYO
KiYO

今回はC++について紹介します。

C言語にオブジェクト指向を載せてパワーUPしてます。

この記事でわかる事
  • C++の特徴
  • C++の歴史
  • C++の利用シーン

今回はこの本を参考に、私の独断と偏見で記事を書いています。

言語を5点中評価

容易性容易に言語習得できるか?2.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++は現在も精力的に開発が続けられているため、機能はさらに増えています

C++の利用シーン

OSやデータベース、ブラウザ(Google ChromeやMozilla Firefox)、ゲーム開発といった実行速度が重視されるソフトウェアにC++は欠かせません。Pythonなどに比べるとやや地味ですが、機械学習の分野でも活躍します。

実行速度重視の開発規模が大きいソフトウェア開発では人気があります。

C++は進化を続ける
  • C++標準会員会を中心に新仕様に関する活発な議論が行われ、現在に至っても機能が増え続けている
  • 言語本体だけでなく、周囲のライブラリも活発に開発が続いている
  • Boostという先進的なライブラリ群やQtという現代的なツールキットが存在する
C++はCを良くも悪くも受け継いでいる
  • C++は機能を増やし進化を続ける言語でありながら、シンプルなCの思想を受け継いでいる
  • C++はガベージコレクションをデフォルトでは有していない(メモリの明示的な開放が必要)
  • C同様やや難しいプログラミング言語と見なされている
  • パッケージマネージャなど開発環境が未整備
C++のコンパイラ
  • C++はCと同じように仕様に対して複数の実装(コンパイラ)が存在している
  • Cと共通しており、GCC(g++)、Clang、MSVC(Microsoft Visual C++)の3つ

まとめ:速度を求められるものはC++で!

今回はC++について解説しました。

高い速度を求められるようなシステムやゲームはC++が得意そうですが、C同様に難易度が高そうですね。

C++の必要性
  • Cの速度と高機能を併せ持つ言語
  • Cとの互換性が高く、併用も可能
  • 周辺ライブラリの開発も活発

やりたいことを実現するために、C++の使い方をマスタしましょう。

何事も覚えることに遅いことはありません。今日が一番若い日です。行動していきましょう!

以上です。KiYOでした!

今回参考にさせていただいた本はこちらです。今回紹介した言語やその他言語も紹介されているので大変勉強になりました。

Udemyというオンライン講座でもプログラミング学習はできます。 再生速度を早めてみたり、何度も見返すことができるのでおすすめです! 私も色々なプログラムをここで学習しています。

[affi id=2]

まとめページで、他のプログラミングも紹介していますので、ご覧ください。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

ITの事や自分の経験談など綴っていきたいと思っています。

コメント

コメントする

CAPTCHA


目次