回答受付が終了しました

ID非公開

2021/7/25 1:41

66回答

オブジェクト指向では、C言語などと違って、

回答(6件)

0

違います。 ■オブジェクト指向以前の高級言語 プログラムの開始アドレス(関数など)をプログラム上での操作を禁止していました。 プログラム上で操作できるものはデータのみです。 プログラムの制御情報は開発言語が内部で自動管理するようになりました。 これは安全性のためです。 ■オブジェクト指向以後 プログラムの中でプログラムのアドレスを操作できるように制限を解除しました。 -------- クラスというのは要は、関数の開始アドレスを変数として保存できる構造体です。

ID非公開

質問者2021/7/30 22:38

それによって何かメリットはあるのでしょうか?

1

>データは一つではなく、 >複製がいくつもそれぞれの 構造体知らない人?

1人がナイス!しています

1

オブジェクト指向は考え方。C言語はプログラミング言語。作り方次第です。 そのオブジェクトに対する操作はオブジェクトでやれというものですが、C言語は古い時代からあるため、構造化プログラミングが主流でしたので、そちらの文献が多いというだけです。 ただオブジェクト指向プログラムに適した言語の方がオブジェクト指向プログラミングはしやすいです。 継承や派生させるのもvoid*でそれらしい動作は実装できますが、それならC++を使えばいいので、C言語で苦労して実装する必要がないのです。

1人がナイス!しています

0

オブジェクト指向かどうかとは、関係ない話かと思います。 C言語でも、当然、複数のデータは扱えますし、 複数のデータから1つの型を作ることも、 変数毎に複製を作ることも、 1つの実体を共有することもできます。 オブジェクト指向言語でも勿論できます。 どういうデータ構造にするかは、プログラマがどう設計するか次第です。