継承による C 標準ライブラリの拡張
一般的な認識は、C 標準ライブラリは継承によって拡張されることを意図したものではないということです。ただし、 std::Exception の存在は、この概念に疑問を投げかけます。したがって、次の疑問が生じます:
標準ライブラリ クラスは継承によって拡張できますか?
std::Exception 以外に、他のどの標準ライブラリ クラスがあるかは明確ではありません。継承を目的としています。適切な候補を決定する実際的なアプローチは次のとおりです:
標準ライブラリ クラスからの継承の影響
std::Exception のような標準ライブラリ クラスから継承する場合、サブクラスが元のインターフェイスに従う必要があるかどうかは議論の余地があります。ただし、「リスコフ置換原則」(LSP) は、クライアントに関する限り、サブクラスの動作が基本クラスの動作と一致している必要があることを示唆しています。
したがって、次のことがベスト プラクティスと考えられています。標準では std::Exception のサブクラスに対してこれを明示的に要求していませんが、サブクラスの what() メンバー関数が null 以外のポインターを返すようにしてください。
以上が継承を通じて C 標準ライブラリを拡張できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。