C言語とCPPの違い | 初心者はどちらを学ぶべきか

スポンサード リンク

C言語とCPP言語の違いに関して説明します。C言語はよりコンピュータネーティブな言語(アセンブラ)に近い言語です。特にポインタとメモリの関係はより機械に近い概念なので理解することが重要です。

初心者の方はまずC言語を学習するとよいと思います。C++より簡単であり基本的なことが勉強できます。C言語で学んだことはC++を学習する際に無駄になりません。ただし設計志向が手続き型(C言語)とオブジェクト指向型(C++)では異なるので、C++を勉強するほうが良いとアドバイスする方もいます。確かに設計に関してはオブジェクト指向型の方が設計が容易で保護機能によりプログラムのミスも少なくなります。またC#やJavaもオブジェクト指向型なので、C++から学ぶのもありだと思います。

スポンサード リンク

(注意)分かりやすく簡単に記載しており、一部の環境や分野では記載内容が異なる可能性があります。あくまでも参考程度でお読みください。

比較表

比較は以下の表の通りとなります。

説明C 言語CPP 言語
概要構造化言語。よりアセンブラに近い。プロシージャ型言語。
オブジェクトやクラスはない。
構造化、およびオブジェクト指向言語。Cをクラス化した言語。プロシジャーおよびオブジェクト指向。
オブジェクトやクラスがある。
関係C++としてコンパイルされれば、C++のサブセットとして使用可能。C++ではCコードを実行することは可能だが、逆にC++はCコードとして実行不可。
処理トップダウンボトムアップ
仮想関数サポートしないサポートされている
オブジェクト指向サポートしないサポートされている
演算子のオーバライドサポートしないサポートされている
関数のオーバライドサポートしないサポートされている
ポリモーフィズム(Polymorphism)サポートしないサポートされている
カプセル化(Encapsulation)サポートしないサポートされている
データ保護機能弱い強い
レベル低級言語(アセンブラに近い)高級言語
分割モジュール単位で分割クラス及び関数で分割
main関数他の関数から呼び出し可能他の関数から呼び出し不可
名前空間(namespace)サポートされないサポートあり
例外ハンドリングサポートされないサポートあり
一般的な拡張子.c.cpp








【注意】本ページは著作権で保護されています。内容は何人も補償しません。時間的あるいは金銭的損失等、一切保証しません。

理解しやすく記載されており、一部不正確な記載がある可能性があります。ご自身の責任で参考にしてください。