[ホーム] > [間違えやすい類語 IT編一覧] > [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 |
[ホーム] > [間違えやすい類語 IT編一覧]
,