Red de conocimiento informático - Conocimiento informático - ¿Cómo escribir un programa para derivar tres clases derivadas de la clase base abstracta definida Shape?

¿Cómo escribir un programa para derivar tres clases derivadas de la clase base abstracta definida Shape?

Defina la clase base abstracta Forma, que deriva tres clases derivadas: Círculo (círculo), Rectángulo (rectángulo) y Triángulo (triángulo). Utilice una función printArea para generar las áreas de las tres anteriores. Los datos para los 3 gráficos se proporcionan al definir el objeto.

#include ?using?namespace?std; ?class?Shape ?{ ? public: ?

virtual?float?printArea()?const?{return?0.0 ;}; }; ?clase?Círculo:público?Forma ?{ ?

público: ?Círculo(float?=0 ?float?printArea()?const?{return?3.14159* radio*radio;} ?

protegido: ?flotante?radio }; ?Círculo::Círculo(flotador?r):radio(r) ?{ ?} ?clase?Rectángulo:público?Forma ? { ?público: ? Rectángulo(float?=0,float?=0); ?

virtual?float?printArea()?const; ?float?height; }; ?

Rectángulo::Rectángulo(flotador?w,flotador?h):ancho(w),alto(h){ ?} ?

flotador?Rectangle::printArea ()const ?{ ?retorno?ancho*alto; ?} ?

clase?Triángulo:público?Forma ?{ ?público: ?Triángulo(flotador?=0,flotador?=0); /p>

virtual?float?printArea()?const; ?protected: ?float?height; ?float?width ?

La clase abstracta (clase base abstracta, ABC) se define en clase Una clase con funciones miembro virtuales puras. Las funciones virtuales puras solo proporcionan interfaces y no tienen una implementación específica. No se pueden crear instancias de clases abstractas (no se pueden crear objetos) y generalmente se usan como clases base para que las subclases las hereden. Las funciones virtuales se reescriben en subclases para implementar interfaces específicas. En resumen, ABC describe una interfaz que utiliza al menos una función virtual pura. Las clases derivadas de ABC utilizarán funciones virtuales regulares para implementar esta interfaz en función de las características específicas de la clase derivada.