Skip to content

IlyaChvanov/Animals

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

#Разработка классов царства животных (Animal)

Задача №1

Разработать абстрактный класс Animal(от него будем наследовать все остальные).

Поля:

  • «вес» float mass;
  • «пол» char* sex;
  • «окрас» char*(or String) color;
  • «возраст» int age; Функции:
  • Animal(...) - конструкторы по умолчанию, инициализации, копирования, перемещения(переноса).
  • virtual ~Animal() - деструктор.
  • метод получения веса float GetMass();
  • метод получения пола char* GetSex();
  • метод получения возраста int GetAge();
  • метод получения окраски char* GetColor();
  • cеттеры на все поля: SetMass(), SetSex(), SetAge(), SetColor().
  • Чисто виртуальная функция WhatDoesSay() - будет реализованна для дочерних классов животных(Кошка говорит - мяу и тд)

Реализовать класс Dog унаследовать от Animal. Для класса Dog требуется реализовать enum class Breed (порода). Заполнить минимум 10 вариантами.

Поля:

  • «кличка» char* name;
  • «порода» Breed race;

Функции:

  • сделать override метода WhatDoesSay()
  • Dog(...) - конструкторы по умолчанию, инициализации,копирования, перемещения(переноса).
  • ~Dog() - деструктор.
  • operator= - копирующее присваивание.
  • operator= - перемещающее присваивание.
  • метод получения клички float GetName();
  • метод получения породы char* GetRace();
  • cеттеры на новые поля: SetName(), SetRace().

Реализовать класс Fox унаследовать от Animal. Для класса Fox требуется реализовать enum class TypeFox (вид лисы(порода лисы)). Заполнить минимум 5 вариантами.

Поля:

  • «кличка» char* name;
  • «вид лисы(порода лисы)» TypeFox type;
  • «кол-во съеденных кроликов» int numberRabbitsEaten;

Функции:

  • сделать override метода WhatDoesSay() Из видео: https://www.youtube.com/watch?v=jofNR_WkoCE взять what does the fox say и реализовать WhatDoesSay() так, что то, что говорит лиса зависит от ее поля type
  • Fox(...) - конструкторы по умолчанию, инициализации,копирования, перемещения(переноса).
  • ~Fox() - деструктор.
  • operator= - копирующее присваивание.
  • operator= - перемещающее присваивание.
  • метод получения породы char* GetType();
  • метод получения кол-ва съеденных кроликов char* GetNumberRabbitsEaten();
  • cеттеры на поля: SetNumberRabbitsEaten(), SetType().
  • метод Eat() при его вызове кол-во съеденных кроликов++.

Задача №2

Написать демонстрационную программу с использованием созданных классов.

Задача №3

Необходимо оформить код в соответствии со стандартом, описанном в https://google.github.io/styleguide/cppguide.html . Статья на хабре на русском: https://habr.com/ru/articles/480422/ Ссылка на гитхаб чекера: https://github.com/cpplint/cpplint

About

🦊🐾A standard project on inheritance

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published