私は小さな話が完全にオブジェクト指向であることを読んだ.. C++でも完全にオブジェクト指向ですか?そうでなければ..なぜそれ?C++は完全にオブジェクト指向の言語ですか?
答えて
いいえ、そうではありません。オブジェクトを一度でも使用することなく、妥当なコーディング済みで優れたスタイルのC++プログラムを書くことができます。
C++はオブジェクト指向プログラミングをサポートしていますが、OOはその言語固有のものではありません。実際、main関数はオブジェクトのメンバではありません。
スモールトークまたはJavaでは、少なくとも1つのクラスなしで靴を結ぶことはできません(または「Hello、world」と書くことはできません)。
(そのプリミティブ(たとえば、intは)オブジェクトではありませんので、もちろん、1は、あまりにもJavaは完全にオブジェクト指向言語であることについて議論することができます。)
これには汎用プログラミング言語 テンプレートなどのユーティリティもあります。しかし、私はオブジェクト指向言語としてC++を関連付ける多くの学校レベルのテキストブックを見てきました。問題は著者がそうしたときに、読者(主に学生)がC++が多くのタイプのプログラミング言語にも適合することを便利に忘れることです。 – sjsam
OOLを定義する。クラスなどの使用を意味するならば、C++はOOスタイルのプログラミングをサポートします。クラスを使わないことからあなたを止めるものは何もありません。 Java OTOHは、クラスを許可しません。 (はい、私はJavaがFPをサポートしていることを知っています)。
"はい、JavaはFPをサポートしています。"それは私にとって初めてのことです。 JavaでFPの例がありますか? –
簡単な検索で私にはかなりの記事が届きます。そのようなもの:
ダーク。私はあなたがJavaが**手続き型プログラミングをサポートしていることを意味すると思いますか? Ne? –
C++には、純粋に手続き型のコードを許可するサブセットとして 'C'方言が含まれています。
C++は、純粋なオブジェクト指向言語ではない、とのようにすでに言及したものでは、C++でOOPの概念を使用する必要はありません。純粋に手続き型言語であるCに基づいているので、C++はハイブリッドオブジェクト指向言語と呼ばれています。
純粋なオブジェクト指向言語の例は、C#とJAVAです。
プリミティブ・データ型と同じものは、ユーザー定義データ型と同じセマンティクスに従わないものです。それらの操作はメッセージの受け渡しに関して定義されておらず、派生クラスでオーバーロードまたは再定義することはできません。 – Omnifarious
あなたは間違った投稿をコメントしたと思います。 ;) –
オムニは、C#とJavaのどちらも、オブジェクトではないintやlongのようなものを持っているので、純粋なオブジェクト指向ではないと言っています。 – paxdiablo
いいえ、純粋にオブジェクト指向の言語ではありません。特にC++のプリミティブなデータ型では、プリミティブではないデータ型とは頻繁に異なる規則があります。さらに、どのデータ型にも関連付けられていない関数を持つことは可能です。 C++が純粋なオブジェクト指向言語ではない、無数の他の方法がありますが、それは最大の理由の2つです。
JavaもC#も、「オブジェクト」データ型と同じセマンティクスに従わないプリミティブなデータ型を持っているため、どちらも純粋なオブジェクト指向言語ではありません。
短い答えはいいえ - C++は完全にOO言語ではありません。 Cサブセットの使用に頼らなくても、C++を使用して「正確ではない」OOPを書くことができます。そのような例の1つが主な方法です。これはどのクラスにも含まれていません。
主な理由は、C++がCから由来していたことです.Stroustrupが新しいバージョンのC(クラスを含む)を作成することを目指していたときです。実際に彼はC(C84)の新しい味として彼の創作を提出しようとしました。
人が「純粋」OOとC++の宣言に対して持っている大きな議論が、それはまだ少なくとも非OOビット、main()
を必要としないすべてのものがオブジェクト(int
、long
ら)であることということです。
また、メッセージパッシングパラダイム(パブリックメンバー)を使用せずにオブジェクトの状態を公開します。これにより、オブジェクトのカプセル化が解除されます。
Javaは、一方で、クラスの静的メソッドとしてmain()
を持っています。したがって、それはより近いですが、それにはまだオブジェクトではないものがあります。
スモールトークは、通常、純粋な純粋なものとして開催されているリンガフランチャですが、私はそれについて十分には分かりません。私はコードを開発し、
もちろんの実際にメインは必要ありません。そのちょうどよく知られているエントリーポイントなので、コマンドラインと(いくつかの)GUIは、ロード後に制御をどこに渡すべきではありません。 –
あなたはメインを必要としますが、それは標準によって義務づけられています。 – paxdiablo
ない:-)私のクライアントに提供して乗るながら私
は、私は知識階級の引数のこれらの並べ替えを残す傾向があります! 本来のデータ型をサポートします。
C++は「クラスを持つC」に過ぎません。私はまだCプログラムを書いて、.cppファイルとして保存することができます。 したがって、「C++は純粋にオブジェクト指向言語ではありません。
- 1. オブジェクト指向プログラミング言語とオブジェクト指向プログラミング言語の違い
- 2. 完全なアスペクト指向プログラミング言語はありますか?
- 3. コンポーネント指向言語とオブジェクト指向言語の違いは何ですか?
- 4. C言語のオブジェクト指向アプリケーション開発
- 5. オブジェクトベースのオブジェクト指向言語
- 6. 純粋にオブジェクト指向の言語
- 7. 最も純粋なオブジェクト指向言語のいくつかは何ですか?
- 8. C言語でプログラムを完全にアンインストールする方法
- 9. Swiftのカプセル化は他のオブジェクト指向言語のように重要です
- 10. オブジェクト指向c#
- 11. プログラミング言語アナライザの完全なリストは?
- 12. XMLはウェブ指向のプログラミング言語ですか?
- 13. C++オブジェクト指向プログラミング
- 14. C++オブジェクト指向ライブラリ
- 15. c# - オブジェクト指向プログラミングファクトリメソッドコンストラクタ
- 16. シンボルオブジェクト指向言語用コンパイラのテーブルスコープ
- 17. オープンソースのC++オブジェクト指向データベース
- 18. Cの完全な宣言子とは何ですか?
- 19. 完全な言語はありますか?
- 20. オブジェクト指向C:ビルディングvtables
- 21. オブジェクト指向のCRUDプログラム - オブジェクト指向設計の理由は何ですか?
- 22. ハイブリッド機能/オブジェクト指向言語:メソッドまたは方法や種類
- 23. 完全型推定言語とは何ですか?そのような言語の限界?
- 24. 発現は、完全なオブジェクト型のC++
- 25. 手続き型言語でオブジェクト指向プログラミングの力をどのように体験できますか?
- 26. C言語でFileInfoオブジェクトをXMLにシリアライズ
- 27. アプリケーションの言語を完全に変更する
- 28. 言語のオブジェクト指向の機能や構造を感じる良い例は何ですか?
- 29. 代数データ型の概念はオブジェクト指向言語のクラス定義に似ていますか?
- 30. シンボル衝突を回避しながらC言語での汎用/オブジェクト指向プログラミング
「スモールトークは完全にオブジェクト指向です」、これはどこから読んだのですか?ちょっと興味があるんだけど。 –
「完全に」とはどういう意味ですか? –
Rubyについてはどうですか? – ukanth