「C++言語」ことはじめ
「C++言語」はプログラミング言語の中でも、「学習のハードルが高い」と認識されていますが、初心者の方に学ぶのが難しい言語というのが事実ではないでしょうか。
なぜ、「C++」が難しいのかというと、C言語と呼ばれる元となるプログラミング言語がありますが、この言語自体が初心者には難しく、それをさらに発展・拡張させたのが、「C++」言語だからです。
しかし、いつまでも難しいといって学習を避けていては、プログラムに関する知識は身に付いていきません。
簡単では無いけれども「玄人」を目指すなら避けては通れないプログラミング言語ではないでしょうか。
「C++言語」の特徴と基本
「C++言語」を学ぶ際に、C言語との違いなどいくつかの押さえておきたい事項についてお話しておきたいと思います。
学習のハードルは高いけれど、使いこなせると、プログラムでできることが大幅に広がる言語でもありますので、わからない部分を解決しながら少しずつ学んでいきましょう。
オブジェクト指向
C++言語はC言語に「オブジェクト指向」と呼ばれる概念を取り入れていて、C++言語学習の障壁となるのが、このオブジェクト指向となることも少なくありません。
オブジェクト指向は、プログラミングを行う際に「現実の事象をプログラムで表現したもの」を作成しますが、この実体を「オブジェクト(インスタンス)」と呼んでいます。
このオブジェクト(インスタンス)」の元となるものが「クラス」です。
クラスは、オブジェクト(インスタンス)の設計図なのですが、建築物を考えると、建築設計図が「クラス」で、その設計図を元に建てられた建築物は「オブジェクト(インスタンス)」と考えることができます。
プログラマはどんな設計図を作るのかを決めることができ、そのクラスの作成に責務を負います。
オブジェクト指向について、より詳細に知りたい方は下記をご覧ください。
クラス
クラスについてプログラム例を元にもう少し詳しく見ていきましょう
C++言語でクラスを表すと下記のようになります。
class Building{ private: int size; //メンバ変数 int price; //メンバ変数 public: void build(); //メンバ関数 void destroy(); //メンバ関数 };
「private」はクラス外からアクセスできないメンバ、「public」はクラス外からもアクセスすることができるメンバを表す際に用いる修飾子です。
「メンバ」とは、クラス内に作られる「変数・関数」のことを言います。
メンバ関数を実行するには下記のように、オブジェクト(インスタンス)を作成してからメンバ関数を実行します。
int main() { Building house; //オブジェクト(インスタンス)作成 house.build(); //メンバ関数を実行 }
C・C++言語の「弱さ」とは?
C・C++言語を利用する際に気を付けておかないといけないこととして、「セキュリティ脆弱性」の問題があります。
他の言語と異なり、C・C++言語は「メモリ管理」がプログラマに任せられているため、プログラマがセキュリティ脆弱性をプログラムの中に作り込んでしまうことが考えられます。
そのため、C・C++言語プログラマにはメモリに関する知識とセキュリティの知識も求められることになります。
セキュリティの知識は高度な内容も多いため、初心者には学習が難しい所以でもありますね。
最近では、メモリ管理をプログラマが行うこと自体が「UnSafe(安全でない)」とされているため、メモリ管理はプログラマに負担させないプログラム言語が普及してきています。