「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > C++ 標準ライブラリ クラスからの継承が許可されるのはどのような場合ですか?

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

2024 年 11 月 8 日に公開
ブラウズ:946

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

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

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

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

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

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

派生クラスの要件

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

結論

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

最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3