『C言語とC++』メリットとデメリットについて調べてみたメモ

    Courseraで 『C++ for C Programer』という講義を受講しています。そこで、今日は、C++がC言語よりも優れている点、またはその逆を調べてみました。

    講義では、マーガリンはバターから作られるから、バターよりベターというオヤジギャグでC++のCに対する優位性が説明されるが、ほかにも以下の様な理由があげられる。

    • More Type Safe
    • More Libraries
    • Less reliance on preprocessor
    • OO vs imperative

    そこで、ネット上の意見も調べてまとめてみた。

    ※自分の意見ではなくて、あくまでネット上の情報をまとめたもの。

    C++がCよりも優れている点

    • C++はC言語を内包している、互換性がある。
    • オブジェクト指向を言語がサポートしている。
    • 豊富なライブラリ群

    CがC++よりも優れている点

    • 実行速度、パフォーマンスが高い。
    • メモリ使用量の小ささ。
    • C++よりも文法がシンプル。

    まとめ

    ハードのレジスタをいじるような組込み系はCが優位、アプリケーションならばC++が優位と読めた。

    C言語でもオブジェクト指向ライクな実装はできるけれども、それをしないのは、(すくなくとも自分の職場では)、過去の資産が手続きで書かれているためと、OOに対する知識のなさからだと思う。

    あとは、OOライクでないと、テストコードがとても書きにくい。TDDが好きなので、C言語よりもC++に魅力を感じる。いまはC言語を仕事でつかっているけれども、早くC++を身につけてC++の仕事に移動したい。