1. ホーム
  2. c++

[解決済み] Objective-CはC++よりも厳密にはCのスーパーセットである」とはどういう意味ですか?

2023-05-06 21:21:19

質問

読んだ限りでは なぜ Objective-C は Apple コミュニティ以外ではあまり人気がないのでしょうか?

Objective-CはCのスーパーセット(実際にはC++よりはるかに厳密)なので、後方互換性の問題は発生しません。C でできることはすべて Objective-C でもできます。

スーパーセットであることは、妊娠しているように、二律背反です。Obj-CはCのスーパーセットであり、C++はそうではありません。

スーパーセットとは何を意味するのでしょうか?objective-C はどのような点でCに近い//後方互換性があるのでしょうか?objective-CはC++よりもどのような点でCの哲学に近いのでしょうか?

どのような C プログラムでも objective-C コンパイラで変更せずにコンパイルできますか(100% 互換性)?

これは、どちらが優れているかという戦争というよりも、プログラミング言語の設計と互換性に関する質問です。

どのように解決するのですか?

簡単な図を用意しました。あまりきれいではありませんが、要点が伝われば幸いです。

  • 赤です。 C、C++、Objective-C で有効なすべてのプログラムの集合 (比較的小さい)
  • 緑色。 C と Objective-C では有効だが、C++ では無効なすべてのプログラムの集合 (さらに小さい)
  • 灰色です。 Objective C と C++ では有効だが、C では無効なすべてのプログラムの集合 (私が知る限りでは空)
  • 青色です。 Objective C でのみ有効なすべてのプログラムの集合 (比較的大きい)
  • 黄色です。 C++でのみ有効なすべてのプログラムの集合 (最大)

有効な C プログラムの集合 (赤と緑) は、有効な Objective C プログラムの集合 (青) の厳密な部分集合である。