継承による C 標準ライブラリの拡張
継承の近寄りがたい砦として広く認識されている C 標準ライブラリには、内部に隠された例外が存在します。そのランク。 std::Exception クラスは、拡張用に明示的に設計された唯一のエンティティとして独立しています。ここで次のような疑問が生じます:
他の標準ライブラリ クラスは拡張できますか?
決定的なリストは存在しませんが、答えは標準の意図を解読することにかかっています。実用的なアプローチには、次の基準を精査することが含まれます:
影響標準ライブラリ クラスからの継承
std::Exception の拡張により、別の懸念点が浮き彫りになります:
インターフェイスの期待への準拠
クラスから継承する場合標準ライブラリ クラスでは、継承されたインターフェイスを尊重する必要があります。たとえば、有効な説明の代わりに null ポインタを返すように what() メンバー関数を変更するサブクラスは、ISO 標準で指定されているインターフェイスに違反します。厳密には標準適合性の問題ではありませんが、正確性が損なわれ、基本クラスの代替可能性の原則が損なわれます。
以上がC 標準ライブラリの他のクラスを「std::Exception」を超えて拡張できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。