C++

1983年、ベル研究所でC言語の拡張版として開発したのがはじまりです。C言語にない機能を様々盛り込んでおり、仮想関数から多重定義など、様々な機能が追加されました。

1990年移行のプログラミング業界では、もっとも人気あるプログラミング言語の一つとされるほどになりました。

C言語の発展型として、C言語からC++に移行することを勧める人もいるほどの高性能プログラミング限度。C++について詳しく調べてみましょう。

※本ページにはPRが含まれます。

C++の特徴

C言語の発展系、C++の特徴を見てみましょう。C++の利用者は未だ多く、日本でも広く使われています。日本での呼び名は、「シープラプラ」などと呼ばれることが多いですね。

C++の記法

C++を成り立たせつのは以下の文字列。

  • 26個のラテンアルファベットの大文字
  • 26個のラテンアルファベットの小文字
  • 10個の10進数字
  • 29個の図形文字

これら以外の文字も、コンパイラが対応していれば、利用可能です。

C言語で出来ることはC++で全部可能

C言語の発展系で、C言語にオブジェクト指向を追加するなど、機能を足した言語であるC++。C言語で可能なことはC++でも全部可能なんて言われることがあるほどです。

C言語で書いたコードも、C++のコンパイルでコンパイラ可能です。よほどの理由がない限り普段C言語でプログラミングを行っている開発者も、C++でコードを書く場合がほとんどのはず。

C++の方がC言語のコードよりもファイル容量が大きく、パフォーマンスの低下を招くものの、C言語より大規模な開発に適しています。C言語より機能が多彩なので、拡張やデバッグをしやすいからです。

C言語との下位互換がある

C言語との互換性を持たせることがC++の大きな開発目的なので、C言語とのかなり高い互換性があります。
C言語で出来ることはすべてC++で出来ると言われる理由はこのためです。C++はOSをはじめシステムプログラミングから、ロボットなどの組み込みシステムプログラミング、デスクトップアプリなど、幅広い分野で活躍するプログラミング言語です。

とはいえ、その言語としての仕様の多さから、言語習得までの道のりがとても厳しい言語だと言われています。そうした習得が困難な言語だからこその熱狂的なファンも世界中におり、現在に到るまで高い人気と指示を集めています。

C++はマルチパラダイム言語

C言語との互換性ありきで開発された言語のため、オブジェクト指向言語としては物足りない、と言われることもあります。

しかし、C++は「マルチパラダイム言語」のため、あらゆる観点からの意見を受け入れる言語です。それはつまり、オブジェクト指向を絶対視してないということで、オブジェクト指向型にとどまらない言語として存在しています。

C++のコンパイラは?

主にC++で用いられるコンパイラは、Microsoft社の「VisualC++」や、「GNU Compiler Collection」があります。
開発環境の自由度は高く、総合開発環境を用いてプログラミングをしてもかまいませんし、メモ帳などを用いてもかまいません。記述したソースの拡張子を「.cpp」という拡張子でコンパイルしてください。詳しいコンパイル方法を知りたい方は、コンパイラ付属の説明をみてみてください。

C言語とC++どちらを学ぶべきか?

よく寄せられる質問で多いのが、「C言語とC++、どちらを学ぶべきか?」というもの。これには当然「どちらも学んだほうが得」なのは間違いありませんが、C++の習得は困難で時間もかかります。

少なくとも、プログラミング初心者が手を出すような言語ではありません。C言語の発展版の色合いが濃いC++という言語。C言語を学んでからその応用版としてC++を学んでもいいかもしれません。CとC++をワンセットで考えると、比較的習得は容易かもしれません。

C++は時代遅れか?

C++は古いプログラミング言語なので、今後学ぶのは時代遅れだという人も少なくありません。しかしそれは間違いです。C++はMicrosoftの次世代インターネット戦略「.NET」には非対応ですがC++を使って、MicrosoftVisualC++.NRTで.NET対応のプログラムを開発することが可能です。

プログラムの処理速度を重要視するプログラムを組む場合は、C#など他言語よりもC++を使ったプログラミングが適しています。

サンプルコード

#include

int main() {
std::cout << “Hello, World!” << std::endl;
return 0;
}

まとめ

C言語の発展型であるC++は、C言語との互換性を持たせることを目的に開発されました。

主にC言語にオブジェクト指向を組み込んだプログラミング言語。C言語でできることはC++ですべてできると言われるほどです。日本では「Cプラプラ」などと呼ばれます。

しかしかなり複雑な言語で、習得が難しいため、初心者にはおすすめできない言語でもあります。C言語を学ぶ際にC言語の応用型として学んではいかがでしょうか。