「C++」とは、オブジェクト指向型の高水準プログラミング言語の一つ。
「C言語」を拡張したもので、
「C言語」にない「オブジェクト指向」を追加したもの。
「C言語」の仕様を上位互換して引き継いでいるのも特徴。
「C言語」の仕様を引き継いで機能を拡張した言語は、「C++」と同様に、オブジェクト指向的な拡張した「Objective-C」が有名。
ほとんどの「C言語」プログラムは、「C++」プログラムとして有効。
「高度で抽象的な機能」と「低水準(ハードウェア寄り)な機能」を兼ね備えた汎用的なプログラミング言語。
プログラムの部品化・再利用がしやすくなっていて、
複雑で大規模なプログラム開発に向いているプログラミング言語。
逆に、使用が大きくなりすぎて複雑すぎて、プログラムが難解とも言われている。
「C++」は、「C言語」と同じように、コンパイラで、プログラムコードを機械語プログラムに変換が必要な「コンパイラ型言語」。
Cにはない要素
・クラスの定義や継承などのオブジェクト指向プログラミング
・関数や演算子のオーバーロード(多重定義)
・テンプレート
・仮想関数
・例外処理
・名前空間
などが追加されている。
Back
「C++」の「オブジェクト指向」とは、
簡単に言えば、オブジェクトは、プログラムによって、目的の作業を実行してくれるプログラムの塊で、
たくさんの変数や関数を使って作られた目的の作業を自動化したものを言います。
オブジェクトを凄くシンプルにすると「関数」のようになりますが、変数や関数を利用して作られているのが「オブジェクト」です。
「オブジェクト」が必要になったのは、
多くの人や多くの箇所で、同じプログラミングコードを使用するケースが多くありますが、
その際に、コードを誤って崩してしまったり、修正するのが大変だったりと、色々と面倒なことが起こります。
「C言語」でも、オリジナルの関数を制作・使用することができていたのですが、
同一の変数名・関数名の多重使用などの問題が怒ったりと問題がありました。
概念としては、新しいものではありませんが、
簡単に宣言して使用できたりと安全・便利になったりしたのが、「オブジェクト指向」です。
「オブジェクト指向」は、プログラミングを安全・簡単・シンプルにするための概念です。
オブジェクトの中のプライベート空間に入れることで、外部からの変更をできないようにしたり、
同一名の変数を他で利用しても、クラスで呼び出さない限り、同一の変数名であっても影響を受けないなど、
良いことが多いのがオブジェクト指向です。
ただ、使用するためには、手順があるので、その都度、その手順を行わないといけませんが、
オブジェクトの中身を一つ修正するだけで、全体の修正ができるのは、非常に助かります。
オブジェクト指向で使われるワード
オブジェクト = オリジナルのプログラミングコード
クラス = オブジェクトを呼び出した際の名前(入れ物)
インスタンス = クラスに呼び出したオブジェクトを実行した結果
Back