Наследование

Последнее обновление: 14.03.2023
Упражнение 1

Определите базовый класс Animal, который представляет животное и который содержит две приватные переменные: строку для хранения имени животного и целое число для хранения веса животного. Также определите общедоступную функцию print, которая выводит на консоль сообщение с указанием имени и веса объекта Animal.

Также создайте два производных класса Cat (кошка) и Dog (собака), которые наследуются от класса Animal. В функции main создайте несколько объектов типа Cat и Dog и с помощью функции print выведите информацию об этих объектах на консоль.

Решение
#include <iostream>

class Animal    // класс животного
{
public:
    Animal(std::string name, unsigned weight): name{name}, weight(weight)
    {  }
    void print() const
    {
        std::cout << "Name: " << name << "\tWeight: " << weight << std::endl;
    }
private:
    std::string name;
    unsigned weight;
};
// класс собаки
class Dog: public Animal
{
public:
    Dog(std::string name, unsigned weight): Animal{name, weight} {}
};

// класс кошки
class Cat: public Animal
{
public:
    Cat(std::string name, unsigned weight): Animal{name, weight} {}
};

int main()
{
    Cat murzik{"Murzik", 20};
    murzik.print();
    Dog muhtar{"Muhtar", 35};
    muhtar.print();
}
Дополнительные материалы
Помощь сайту
Юмани:
410011174743222
Перевод на карту
Номер карты:
4048415020898850