C++入門
ITエンジニアを目指している皆さんは、どのようなプログラム言語を学習されていますか?まだ決めていない方、第二言語を学ぶ予定の方には迷わずC++をおすすめします。それは、C++は非常に優れた言語で、汎用性が高く、大規模案件でもよく使われているからです。
そのためにC++を扱えるエンジニアに対する需要が旺盛です。この記事では、C++をこれから学ぶ人に必要な基礎知識を「C++入門」という形でお伝えしていきますので、ぜひ最後まで目を通してみてください。
C++とは
C++は、50年の歴史を持つC言語を機能拡張して編み出されたプログラミング言語で、C言語の上位互換の関係にあります。C言語は直接ハードウェアを制御する言語であり、体系や構造が複雑で、ハードウェアに関する知識も求められることから初心者が学ぶにはハードルが高いと言われています。
C++はC言語をベースにしており、人気のPythonやRubyなどと比較すると確かに難易度は高いのですが、多少苦労してでも学ぶだけの大きなメリットがあります。
意外に思われる方もいるかもしれませんが、テレビやエアコンなど、家電の多くに組み込まれたソフトの多くはC++が使われています。皆さんが普段プレイしているゲームにもC++が使われています。他にはWindowsやLinuxなどのOSにもC++が使われています。つまり、私たちの生活はCやC++によって支えられていると言っても過言ではないのです。
ちなみにC++の読み方ですが、「シープラスプラス」は長すぎて呼びにくいため、一般的には『シープラ』または『シープラプラ』などの省略形で呼ばれています。
C++の歴史とオブジェクト指向
CC++は米国のAT&Tベル研究所で、1985年にC言語をベースにオブジェクト指向のプログラミング言語として開発されました。
オブジェクト指向言語はプログラミング言語の中でも、関連し合うデータの集合と手続き群を1つにまとめた「オブジェクト」をプログラムの基本構成単位として扱えるプログラミング言語です。
オブジェクト指向とは、開発するものの1つ1つを「もの」としてとらえ、「もの」の仕組みを考えながら組み立てていくことを意味しています。
このような説明を聞いても、なかなか理解しにくいと思いますので、あまり深く考えず、実際のプログラミングを通じて感覚として覚えていけばよいでしょう。
オブジェクト指向言語は、メンテナンス性に優れ、大規模開発にも向いています。C#、Java、JavaScript、Ruby、Pythonなどもオブジェクト指向言語に分類されています。
C++の特徴
ここまで述べたことを整理し、改めてC++の特徴を確認しておきましょう。
▪オブジェクト指向言語である
▪C言語をベースに機能拡張した言語で、C言語の上位互換である
▪汎用性が高く、常に人気プログラミング言語の上位である
以上C++の特徴はオプジェクト指向、C言語との互換性、汎用性の3つです。ぜひ覚えておいてください。
C++の動作環境
C言語は直接ハードウェアを操作できる言語ですが、その流れを汲むC++も同様です。Windows、Mac、LinuxなどほとんどのOSにも対応しています。またC++はコンパイラ言語であり、ソースコードを一旦コンパイラ(機械語への翻訳)を通して機械語に変換してから動かします。
生成された機械語はOSごとに微妙に異なりますので、たとえばWindowsでコンパイルした実行ファイルをMacで動かすことはできません。仮にWindows環境でC++を実行環境を作るには、次の3つが揃えれば環境は整い、学習やプログラム開発が行えます。
・WindowsOS(Windows11もしくはWindows10)がインストールされたパソコン
・MinGW (Windows環境でCとC++を開発するためのコンパイラで提供サイトからダウンロードして利用)
・Visual Studio Code(Microsoftが提供するマルチコードエディタで、C++にも対応)
【参考】:MinGW-w64|公式サイト
【参考】:Visual Studioダウンロード|Microsoft
【参考】:Windows 10でC言語開発をしよう! Build Tools for Visual Studio 2019編|マイナビニュース
C++でできること
ここまで延べてきたとおり、C++は汎用性が高いことが特徴であり、それが人気の理由です。歴史のある言語ではありますが、今でも広範に最先端分野の開発言語として活用されています。ここではC++でできることについて具体例をあげて5つ紹介します。
組み込み系ソフトの開発
組み込み系ソフト開発とは、さまざまな電子機器などに搭載されたコンピューターに組み込まれたソフトを開発することです。
私たちが日常で利用している電子機器の大半がCやC++による組み込み系ソフトが搭載されています。例をあげると、テレビ、電子レンジ、冷蔵庫、全自動洗濯機などには専用のコンピューターが搭載されており、組み込み系ソフトによって制御され、必要な機能を発揮しているのです。
大規模業務システムの開発
長い歴史を持つC++は既にさまざまな企業や官公庁の業務システムの開発に使われ、金融システムや流通系システムまで幅広く活用されています。
C++は実行速度が早く、安定性が高く、またOSの制御も可能なことなどが採用されている理由です。
AI分野の開発
AIの開発言語といえば、PythonやR言語、Juliaなどが知られていますが、C++もAIの開発では利用されています。
C++は実行スピードが非常に速いことから、高速処理が必要な自動運転システムなどのAI分野で採用されています。
IoT分野の開発
最近よく目にするIoTは、「Internet of Things」の略語で、インターネットとモノを接続する技術のことを指します。
最近では、外出先からスマホで自宅のエアコンや照明を制御することが当たり前になってきましたが、このIoT技術の開発にもC++は活用されています。
ゲームの開発
C++の特徴として、高速処理を挙げましたが、他に複雑な処理が行えるのも特徴の1つです。こうした特徴を生かしてC++はゲーム開発においても広く活用されています。
ゲーム開発分野に進みたいエンジニアの方に、C言語、C++は必須言語と言えます。
独学によるC++の学習法
初心者にはハードルが高いと言われるC++ですが、独学でC++を習得する人は少なくありません。特に仕事をしている方はスクールに通う時間の確保もままならないでしょう。ここでは忙しい方に向け、独習法を中心にC++の始め方、学習法などをご紹介します。
また学習を続けるためには目標が必要ですので、C++に関する認定資格試験取得についても紹介します。
習うより慣れる
プログラミング学習は頭で覚えることも必要ですが、手を動かし、実際に体験してみることが習得を早める秘訣です。座学と併せて、C++を動かす環境を整え、手を動かしながら学んでいきましょう。以下、おおまかな流れを紹介していきます。
1.C++を動かす環境を用意する
先ほど紹介した「C++の動作環境」を参考にして、実際にC++のプログラミングや実行が行える環境を用意します。
2.実際に動作させてみる
後ほど紹介する参考書や参考サイトに載っているデモプログラム、サンプルプログラムなどの簡単なプログラムをお手本にして、コーディング、コンパイル、実行をさせてみましょう。Visual Studio Codeを使うと、コンパイルからビルド(実行ファイルの生成)まで一度に行えるので便利です。
【参考】:Visual Studio Code
3.プログラムと実際の動きの両方を見て理解する
実際に動いたプログラムのソースを見て、どのようにしてプログラムが動いたのかを確認しましょう。理解ができたら、プログラムに手を加えて、異なる動きをさせてみると良いでしょう。エラーが出ても、エラーの原因を調べる事でプログラミングスキルが次第に身に付いてきます。
4.プログラムを自作してみる
サンプルプログラムなどで、少しずつプログラミングが分かってきたら、サンプルプログラムをベースにして、新たな機能を追加してみましょう。簡単なゲームでも作ってみると自信がついて来ることでしょう。
以上のような流れで、参考書や参考サイトを利用しながら学習を進めていくと、きっとC++に親しみが湧いてくることと思います。
C言語プログラミング能力認定試験
C++に関する認定資格の初級レベルとしては、「C++ Certified Associate Programmer」※2が知られていますが、英語による試験のため英語に自信のない方には難易度が上がります。また、残念ながらまだ日本にはC++の資格試験がありませんので、代替試験の勉強をおすすめします。
C++の元となったC言語の認定試験「C言語プログラミング能力認定試験」※1の受験です。この試験勉強を通じて学んだC言語の知識は必ず仕事でも役立ちます。またC言語とC++の両方のスキルが身に付くことで就職や転職などでも有利になるでしょう。
「C言語プログラミング能力認定試験」は3級から1級までありますが、入門者は3級から受験することをおすすめします。
【参考】:※1、C言語プログラミング能力認定試験
【参考】:※2、C++ Certified Associate Programmer
C++を入門書で学ぶ(おすすめの入門書)
C++の学習はスクールの利用が近道ですが、高額の費用と通学時間の確保が必要となるため、ここでは入門書などによる独習方法をご紹介します。C++入門でおすすめの書籍を2冊紹介しますので参考にしてください。
■ やさしいC++ 第5版
C++の入門書としては定番と言える参考書です。豊富なイラストと丁寧な説明でC++をやさしく学べます。サンプルプログラムが多く、独学にも最適です。ただ、これ一冊でC++の全てを学べるわけではありません。前述の「C言語プログラミング能力認定試験」の勉強と併用してみてください。
▪著者:高橋麻奈
▪ページ数:596ページ
▪出版社:SB Creative
▪発売日:2017/06/14
【参考】:やさしいC++ 第5版
■ C++の絵本 第2版 C++が好きになる新しい9つの扉
「C++を使って何かを作ってみたい」という入門者の要望を叶える一冊です。オブジェクト指向が難しいという人にもオブジェクト指向について分かりやすく解説しています。また最新のC++の機能にも対応しており、本格的なプログラミングの第一歩を踏み出す切っ掛けとなる参考書です。
▪著者:株式会社アンク
▪ページ数:216ページ
▪出版社:翔泳社
▪発売日:2017/04/13
【参考】:C++の絵本 第2版 C++が好きになる新しい9つの扉
C++エンジニアの将来
ここまでC++入門という形で、C++エンジニアを目指す方が独習する上で必要と思われる前提知識、書籍などを紹介いたしました。C++は人気のPythonなどと比べて学習難易度はやや高くなりますが、習得すれば必ず力強い味方となってくれる優れた言語です。
編集部オススメコンテンツ
アンドエンジニアへの取材依頼、情報提供などはこちらから