-2

おっと機能

  1. クラス:しかし、cにも構造体と共用体があります
  2. 演算子のオーバーロード:0.1+3.4または1+3または'a'+'b'と書くことができます。これは、+演算子が整数、浮動小数点、および文字の加算に対して機能するため、演算子のオーバーロードの一種ですか?
  3. 継承:cでは、include likeを使用して別のファイルにファイルを含めると、include<iostream.h>これによってiostreamファイルを別のファイルに含めます。これにより、cでも継承を実現できます。

    要するに、私の質問は、いくつかの議論を持っているすべてのオブジェクト指向の質問に対するものなので、c言語とのすべてのオブジェクト指向機能の比較をクリアするのを誰かが助けることができます。

    cはオブジェクト指向言語ではありませんが、上記の議論は、cもオブジェクト指向言語であることを証明しています。

    だから私はc言語と比較してオブジェクト指向機能についてもっと太平洋に行きたいです。

4

2 に答える 2

3

Cは、言語としてのオブジェクト指向プログラミングをサポートしていませんが、コードにオブジェクト指向の概念(カプセル化、情報隠蔽、ポリモーフィズムなど)を実装できないという意味ではありません。言語はあなたを助けないので、あなたはそれをするためにもっと一生懸命働かなければなりません。

Bjarne Stroustrupは、Cに加えてOOPの言語サポートを追加するために多くの作業を行う必要がありました。C++は簡単な成果ではありません。

于 2012-05-09T16:51:29.670 に答える
2

1クラスはユニオンまたは構造よりもはるかに多く、クラスには変数とメソッド(コード)を含めることができます。ユニオンまたは構造にロジックを含めることはできません。

  1. 演算子のオーバーロードは厳密にはoo機能ではなく、Javaには演算子のオーバーロードがありません。あなたの例は限定的なオーバーロードであり、structA+structBをcで機能させることはできません

  2. ライブラリのロードと継承には大きな違いがあります。継承を使用すると、親のすべての動作を持つサブタイプを作成してから、それらを変更したり、いくつかの機能を追加したりできます。これはCで行うこともできますが、はるかに難しく、非常に複雑になります。

OOの概念についての理解はかなり限られているようです。概念を理解するために、いくつかの基本的なOOチュートリアルを読みます。

于 2012-05-09T17:00:51.917 に答える