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

Объектно-ориентированное программирование в C++ — ООП в C++

Фрагмент из «Объектно-ориентированное программирование в C++»: ООП в C++.

C++ main.cpp
#include <iostream>
#include <memory>

class Animal {
public:
    virtual void sound() {           // virtual — для переопределения
        std::cout << "???" << std::endl;
    }
    virtual ~Animal() = default;     // виртуальный деструктор!
};

class Dog : public Animal {
public:
    void sound() override {          // override — C++11, явно указываем
        std::cout << "Гав!" << std::endl;
    }
};

std::unique_ptr<Animal> a = std::make_unique<Dog>();
a->sound();      // "Гав!" — полиморфизм через vtable
#include <iostream>
#include <memory>

class Animal {
public:
    virtual void sound() {           // virtual — для переопределения
        std::cout << "???" << std::endl;
    }
    virtual ~Animal() = default;     // виртуальный деструктор!
};

class Dog : public Animal {
public:
    void sound() override {          // override — C++11, явно указываем
        std::cout << "Гав!" << std::endl;
    }
};

std::unique_ptr<Animal> a = std::make_unique<Dog>();
a->sound();      // "Гав!" — полиморфизм через vtable