Код IT
← Каталог

Объектно-ориентированное программирование в C++ — Множественное наследование и виртуальное наследование

Фрагмент из «Объектно-ориентированное программирование в C++»: Множественное наследование и виртуальное наследование.

C++ main.cpp
class Flyable {
public:
    virtual void fly() const = 0;
};

class Swimmable {
public:
    virtual void swim() const = 0;
};

class Duck : public Animal, public Flyable, public Swimmable {
public:
    void speak() const override { std::cout << "Quack!\n"; }
    void fly() const override { std::cout << "Duck is flying\n"; }
    void swim() const override { std::cout << "Duck is swimming\n"; }
};
class Flyable {
public:
    virtual void fly() const = 0;
};

class Swimmable {
public:
    virtual void swim() const = 0;
};

class Duck : public Animal, public Flyable, public Swimmable {
public:
    void speak() const override { std::cout << "Quack!\n"; }
    void fly() const override { std::cout << "Duck is flying\n"; }
    void swim() const override { std::cout << "Duck is swimming\n"; }
};