皆さんこんにちは、Muuです!
今年の4月からC言語の勉強を始めて、今ではブログでC言語の解説をしています。学習期間は約3カ月でした。2,3カ月前からC++の勉強を始めたのですが、その中で思ったことや難しかったこと、2つの大きな違いなどを忘れないうちに解説します。
【CとC++の違い】CとC++の歴史
ほとんどの方が知っているかもしれませんが、C++はC言語の拡張です。
C言語とは1972年にAT&Tベル研究所のデニス・リッチーが主体となって開発された言語です。
C言語の誕生から7年後の1979年に、クラスという概念を付け加えたC with Classesという言語が開発されました。これが後のC++です。
その後もC++には新しい機能が追加されています。
この点を踏まえて以下を読んでください。
CとC++の違いはここ!
それでは、まずはC++がC言語とは異なる点をまとめます。もちろんこれ以外にも2つの言語には違いがありますが、全てを説明しているとキリがないので7つに絞りました。
C++はC言語の拡張である。
先ほど述べたようにC++は、C言語にクラスなどの概念付け加えたプログラミング言語です。端的に言えば、C++はC言語の拡張なのです。
クラスの他にも、たとえば「コンストラクタ」、「デストラクタ」、「継承」、「オーバーロード」などの機能が追加されました。
これらの機能が追加されたことで、「何でもできる上にC言語よりも使いやすいプログラミング言語」が誕生したのです。
C++とC言語は使用目的が異なる。
何でもできると言っても、2つのプログラミング言語には向き不向きがあるので、目的によって使い分ける必要があります。
たとえばC言語は、将棋ソフト、OS、コンパイラ、プログラミング言語、電化製品などで活用されています。
逆にC++は、ウェブアプリ、金融システム、Androidアプリなど様々なところで活用されています。
どちらも「実行速度が速い」という利点を有効活用していることが分かるかと思います。
C++とCは人気度が倍以上異なる。
C言語は開発から50年近く経つ今でも人気があり、TIOBEの「プログラミング言語人気ランキング」では2020年11月現在、4位のC++とは人気度が倍以上異なり、1位を獲得しています。
C++がC言語の拡張にも関わらず、このような結果になったのは「実行速度」に理由があります。
C++はC言語よりも実行速度が遅い
C++も実行速度がかなり速いですが、C言語には程遠いです。これは実際に双方の言語でプログラムを作ってもらえれば分かるかと思います。
C++とC言語はライブラリが異なる
そもそもC++とC言語はライブラリが異なります。(ライブラリとは、よく使うことのテンプレートみたいなものです。利用すれば大幅に作業を減らすことができます。)
たとえばC言語には最初の頃にはstdio.h、math.h、string.hなどのライブラリを使用しますが、C++はiostreamなどを使用します。
そのため、やりたいことや目標によってどのライブラリを使用したいか決まってくるかと思います。
このことを考えれば、「C言語とC++どちらを使用するのが正しいか」という疑問の答えが出てくるでしょう。
【CとC++の違い】結局どっちを勉強すればいいの?
C言語から始めましょう。C言語は確かにレベルが高く難しい言語ですが、C++の方が簡単かと言ったらそうでもありません。どちらも難しいと思ってください。
ですがC言語の方が人気度が高いため、解説サイト、参考書が多いという印象です。そのため、C言語を学習することでプログラミングに慣れてから、C++にも挑戦する人が多いようです。
C言語でC++の関数を扱ったり、C++でC言語の関数を扱ったりすることもできるので、どちらも使えるようになると便利です。
当サイトではC言語を基礎から解説しているので、参考にしてみて下さい。
まとめ
C言語とC++は似ているようで異なることが分かって頂けたでしょうか?どちらも50年近く前に作られた言語ですが、今でも人気なのは、その速さと有用性が理由なのです。