"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cuándo es aceptable heredar de las clases de la biblioteca estándar de C++?

¿Cuándo es aceptable heredar de las clases de la biblioteca estándar de C++?

Publicado el 2024-11-08
Navegar:107

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

Ampliación de la biblioteca estándar de C mediante herencia

Si bien a menudo se supone que heredar de las clases de la biblioteca estándar de C no es deseable, existen excepciones notables .

Clases identificables para herencia

Determinación de si una biblioteca estándar La clase está destinada a la herencia puede ser un desafío. Sin embargo, las siguientes pautas pueden proporcionar alguna idea:

  • Si la clase tiene métodos virtuales, es un posible candidato para la herencia.
  • Declaraciones excesivas de "amigos" indican problemas de encapsulación, lo que hace que la herencia menos adecuado.
  • Las plantillas deben considerarse para la especialización en lugar de la herencia.
  • Los mecanismos basados ​​en políticas, como std::char_traits, sugieren herencia no está previsto.

Requisitos de clases derivadas

Al heredar de las clases de la biblioteca estándar, se debe aplicar el principio de sustitución de Liskov (LSP). El comportamiento observable, como la función what() en std::exception, debe coincidir con la clase base. La conformidad con el Estándar es menos preocupante que la corrección en este contexto.

Conclusión

Si bien el Estándar en sí carece de orientación explícita sobre cómo ampliar la Biblioteca de Estándares, es crucial considere cuidadosamente el uso previsto de las clases y aplique juiciosamente los principios de herencia.

Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3