#include <iostream>
#include <string>
using namespace std;
class Producto {
public:
Producto(double p, string n) {
nombre = n;
precio = p;
}
virtual void orden() {
cout << "Su producto es " << nombre << " y el precio es " << precio << endl;
}
protected:
double precio;
string nombre;
};
class Helado : public Producto {
public:
Helado(string s, double p, string n) : Producto(p, n) {
sabor = s;
}
void orden() override {
cout << "El helado es de sabor " << sabor << ", Nombre: " << nombre << ", Precio: " << precio << endl;
}
protected:
string sabor;
};
class Bebida : public Producto {
public:
Bebida(string t, double p, string n) : Producto(p, n) {
tamaño = t;
}
void orden() override {
cout << "La bebida es de tamaño " << tamaño << ", Nombre: " << nombre << ", Precio: " << precio << endl;
}
string tamaño;
};
int main() {
Producto obj(3.150, "chococono");
obj.orden();
Helado obj2("fresa", 4.56, "helado cuadrado");
obj2.orden();
Bebida obj3("3 onzas", 3.55, "vive 100");
obj3.orden();
return 0;
}
/*
La clase Producto tiene dos atributos, nombre y precio, y un método virtual llamado orden, el cual imprime el nombre y el precio del producto.
Las clases Bebida y Helado heredan de la clase Producto. Cada una de estas clases sobreescribe el método orden para proporcionar una implementación específica que incluye información adicional relevante para cada tipo de producto: sabor para Helado y tamaño para Bebida.
En las clases derivadas, se utilizan constructores que llaman al constructor de la clase base -Producto para inicializar los atributos heredados (nombre y precio).
El método orden en cada clase derivada muestra cómo se puede utilizar el polimorfismo para extender y personalizar el comportamiento de una clase base en clases derivadas. La sobrescritura del método orden permite que los objetos de Bebida y Helado puedan ser manejados como objetos de Producto, pero con comportamiento especializado.
Además, los atributos precio y nombre son protected, lo que significa que son accesibles desde las clases derivadas pero no desde fuera de la jerarquía de herencia.
*/
To embed this project on your website, copy the following code and paste it into your website's HTML: