【初心者向け】C++入門

プログラミングを勉強したいと思うものの、一体どの言語を学べば良いか分からないという初心者の方も多いと思います。ここでは、有名且つ汎用的な言語であるCを基に開発されたC++という言語をご紹介させて頂きますので、言語選びの一つの参考になればと思います。

C++とは

C++の特徴

C++はC言語を基に拡張された言語のため、基本的な記述方式はC言語とほぼ同様なのですが、その特徴としてオブジェクト指向といった概念が挙げられます。オブジェクト指向とは、それぞれのインスタンスが共通で保持している要素や振る舞い等をクラスで定義する事により、各インスタンスの生成を容易にしようといった考え方です。

C言語との違い

C言語にオブジェクト指向という概念を追加したものがC++になります。そのため、C言語であれば長々と記述しなければいけなかったコードを短く記述する事ができたり、C言語では成し得なかった事を実現する事が可能です。

また、C++はC言語の上位互換とも言える存在ですので、互換性は高く、大凡C言語で記述されたものはC++でもそのまま流用する事ができるでしょう。ただ、極希にエラーとなってしまう場合もありますので、その点には注意が必要です。

C++の難易度

メジャーな言語の中ではC++の難易度は比較的高いと言えるでしょう。C言語の特徴でもあったポインタ等の理解、C++で使用可能になったオブジェクト指向に対する理解、そして複雑な言語仕様に対する理解が要求されます。

C++でおさえておきたいポイント

クラス

前述した通り、C++の大きな特徴の一つとして挙げられるのがオブジェクト指向という概念です。そのオブジェクト指向型プログラミングをする際に用いるのがクラスという存在になるのですが、クラスというのは、具体的なモノではなく、より抽象化された存在と説明する事ができます。

例えば、車というクラスが存在し、そこに車の共通概念が定義されています。共通概念とは、例えば排気量や燃費、外観といったものです。その車というクラスから具体的な車種がそれぞれに生成されるといった形になります。

クラスの定義は下記のように行われます。

class '任意の名前'{
private: 非公開要素
public: 公開要素
}

関数

関数とは、プログラム中で何度も行う処理をまとめて定義したものであり、単数及び複数の引数を渡したり、結果をリターンする事ができます。関数を上手く定義する事で、プログラムの記述を簡易的にする事ができ、より見やすく分かりやすいコードとなるでしょう。

例えば、四則演算の電卓ソフトを作りたい場合に四則演算部分を関数化し、ユーザーが入力した値を各関数に引数で渡し、結果をリターンするといったものが挙げられるでしょう。なお、加算する場合においての関数の定義の仕方は下記の通りとなります。

int add(int a, int b){
return a + b;
}

継承

継承とは、あるクラスの要素に新たな要素を追加して新しいクラスを生成する、といった機能になります。これによりクラス間の共通要素を新しく記述する必要がないため、クラスの定義が容易になる部分があります。

例としては、電話という既存のクラスがあり、それを継承してFAX機能付電話という新たなクラスを生成する等が考えられるでしょう。その際、元々の電話というクラスが持っていた要素は全てFAX機能付電話というクラスに受け継がれますので、そこにFAXという機能を追加する事により、容易にクラスを生成する事ができます。

また、C++では多重継承という機能もありますので、例えばクラスAとクラスBといった二つのクラスを継承し、そこに新たな要素を追加したクラスCを生成するといった方法も可能です。ですが、多重継承は難解なものとなりますので、取り扱いは慎重に行った方が良いでしょう。

参照

C++には参照という概念が追加されました。参照はポインタ同様アドレスを示すものとなりますが、その違いとしてはNULLを指す事ができない、またアドレスの変更を行う事ができないといったものが挙げられます。そのため、ポインタと比較すると安全に使用する事ができますが、場合によってはポインタを使った方が良いケースもありますので、状況に応じて使い分けるのが良いでしょう。

演算子

一般的にプログラミング言語の演算子として、+や-のような算術演算子、そしてANDやORのような論理演算子等といったものが存在します。これらはプログラムを組むにあたり、任意の箇所で使用する事が可能なのですが、C++の場合は演算子のオーバーロードが可能となっている点も大きな特徴と言えるでしょう。

演算子をオーバーロードする際には「operator」を用います。

まとめ

CやC++といった言語は、その他のメジャーな言語に比べると少々敷居が高く、学習も容易ではないでしょう。ですが、C++はコンピュータ寄りの言語という事もあり、その汎用性は高く、主に組込ソフトウェアの世界では欠かす事のできない存在となっています。

関連記事

ページ上部へ戻る