cpp oop

#include <iostream>
#include <string>

class Animal {
public:
    Animal(const std::string& name) : name(name) {}

    void eat() const {
        std::cout << name << " is eating." << std::endl;
    }

    void sleep() const {
        std::cout << name << " is sleeping." << std::endl;
    }

private:
    std::string name;
};

class Dog : public Animal {
public:
    Dog(const std::string& name, const std::string& breed)
        : Animal(name), breed(breed) {}

    void bark() const {
        std::cout << "Woof! Woof!" << std::endl;
    }

private:
    std::string breed;
};

int main() {
    Animal genericAnimal("Generic Animal");
    genericAnimal.eat();
    genericAnimal.sleep();

    Dog myDog("Buddy", "Golden Retriever");
    myDog.eat();
    myDog.sleep();
    myDog.bark();

    return 0;
}