[解決済み] なぜC++には基底クラスがないのですか?
2023-04-08 06:18:10
疑問点
設計の観点から言うと、C++では、なぜすべてのベースクラスの母体がないのでしょうか?
object
であるような基底クラスがないのはなぜでしょうか?
どのように解決するのですか?
決定的な裁定は StroustrupのFAQ . 要するに、意味的には何も伝わらないのです。コストがかかる。テンプレートはコンテナの方が便利です。
なぜ C++ には普遍的なクラス Object がないのですか?
ジェネリックプログラミングは、ほとんどの場合において静的に型安全な代替手段を提供します。その他のケースは多重継承で処理します。
有用なユニバーサルクラスは存在しません。真にユニバーサルなものは、それ自身のセマンティクスを持ちません。
普遍的なクラスは、型やインターフェイスについてのずさんな考えを助長し、過剰な実行時チェックを引き起こします。
普遍的な基底クラスを使用することは、コストを意味します。オブジェクトは多相であるためにヒープで割り当てられなければなりません。ヒープ オブジェクトはコピー セマンティクスを自然にサポートしません。ヒープオブジェクトは単純なスコープ動作をサポートしない(これはリソース管理を複雑にする)。普遍的な基底クラスは、dynamic_castや他の実行時チェックの使用を奨励します。
関連
-
[解決済み] string does not name a type Errorが発生するのはなぜですか?
-
[解決済み】C++の変数はイニシャライザーを持っているが、不完全な型?
-
[解決済み】浮動小数点例外エラーが発生する: 8
-
[解決済み] using namespace std;」はなぜバッドプラクティスだと言われるのですか?
-
[解決済み] 要素ごとの加算は、結合ループよりも分離ループの方がはるかに高速なのはなぜですか?
-
[解決済み] なぜC++はPythonよりもstdinからの行の読み込みが遅いのですか?
-
[解決済み] なぜテンプレートはヘッダーファイルでしか実装できないのですか?
-
[解決済み] C++で仮想関数が必要な理由とは?
-
[解決済み】画像処理。コカ・コーラ缶」認識のためのアルゴリズム改良
-
[解決済み】なぜC#では==と!=の両方を定義しなければならないのか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】 unsigned int vs. size_t
-
[解決済み】非静的メンバ関数への参照を呼び出す必要がある
-
[解決済み】C-stringを使用すると警告が表示される。"ローカル変数に関連するスタックメモリのアドレスが返される"
-
[解決済み】「std::operator」で「operator<<」にマッチするものがない。
-
[解決済み】#include<iostream>は存在するのですが、「識別子 "cout "は未定義です」というエラーが出ます。なぜですか?
-
[解決済み】クラステンプレートの使用にはテンプレート引数リストが必要です
-
[解決済み】エラー:free(): 次のサイズが無効です(fast)。
-
[解決済み] 警告:暗黙の定数変換でのオーバーフロー
-
[解決済み】'std::cout'への未定義の参照
-
[解決済み】c++で.txtファイルから2次元の配列に読み込む