Определите абстрактный класс Animal, который представляет животное и который имеет две переменных - name (кличка животного) и weight (вес животного).
Также определите в классе Animal чистую виртуальную функцию makeSound
, которая представляет произносимые животным звуки, и функцию print, которая выводит на консоль имя и вес животного.
Определите классы Cat (кошка) и Dog (собака), которые наследуются от класса Animal и которые переопределяют функцию makeSound
#include <iostream> class Animal { public: Animal(std::string name, double weight): name{name}, weight{weight} {} void print() { std::cout << "Name: " << name << "\tWeight: " << weight << "kg" << std::endl; } virtual void makeSound() const = 0; // private: std::string name; // кличка животного double weight; // вес животного }; class Cat : public Animal // котэ { public: Cat(std::string name, double weight): Animal{name, weight} { } virtual void makeSound() const { std::cout << "Miau, miau. I am a cool kote" << std::endl; } }; class Dog : public Animal // котэ { public: Dog(std::string name, double weight): Animal{name, weight} { } virtual void makeSound() const { std::cout << "Gov gov, I am a dog" << std::endl; } }; int main() { Cat murzik{"Murzik", 15}; Dog pushok{"Pushok", 20}; murzik.print(); murzik.makeSound(); pushok.print(); pushok.makeSound(); }
Консольный вывод:
Name: Murzik Weight: 15kg Miau, miau. I am a cool kote Name: Pushok Weight: 20kg Gov gov, I am a dog