C 標準ライブラリ クラスからの継承が許可されるのはどのような場合ですか?

Susan Sarandon
リリース: 2024-11-03 13:28:03
オリジナル
510 人が閲覧しました

When is It Acceptable to Inherit from C   Standard Library Classes?

継承による C 標準ライブラリの拡張

C 標準ライブラリ クラスからの継承は望ましくないと思われがちですが、注目すべき例外もあります.

継承用の識別可能なクラス

標準ライブラリ クラスが継承を目的としているかどうかを判断するのは困難な場合があります。ただし、次のガイドラインは洞察を提供します:

  • クラスに仮想メソッドがある場合、それは継承の候補となる可能性があります。
  • 過度の「​​フレンド」宣言はカプセル化の問題を示し、継承が行われます。あまり適切ではありません。
  • テンプレートは、継承ではなく特殊化を検討する必要があります。
  • std::char_traits などのポリシーベースのメカニズムは、継承が意図されていないことを示唆しています。

派生クラスの要件

標準ライブラリ クラスから継承する場合、リスコフ置換原則 (LSP) を適用する必要があります。 std::Exception の what() 関数などの監視可能な動作は、基本クラスと一致する必要があります。この文脈では、規格への適合性よりも正確性が問題となります。

結論

規格自体には、標準ライブラリの拡張に関する明確なガイダンスが欠けていますが、以下を行うことが重要です。クラスの使用目的を慎重に検討し、継承の原則を慎重に適用してください。

以上がC 標準ライブラリ クラスからの継承が許可されるのはどのような場合ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート