Skip to content

Herencia Pública

cpp
// Clase base
class Animal
{
private:
	std::string _name;

public:
	Animal(const std::string &name) : _name(name) {}
	void comer() const {
		 std::cout << _name << " está comiendo." << std::endl; }
	void dormir() const {
		 std::cout << _name << " está durmiendo." << std::endl; }
};

// Clase derivada (herencia pública)
class Perro : public Animal
{
private:
	std::string _raza;

public:
	Perro(const std::string &name, const std::string &raza) : Animal(name), _raza(raza) {}
	void ladrar() const { std::cout << "Guau guau!" << std::endl; }
};

int main()
{
	// Crear un objeto de la clase derivada
	Perro miPerro("Buddy", "Labrador");

	// Acceder a los métodos de la clase base a través de la herencia
	miPerro.comer();
	miPerro.dormir();

	// Acceder a los métodos específicos de la clase derivada
	miPerro.ladrar();

	return 0;
}