Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/ilyachvanov/animals

🦊🐾A standard project on inheritance
https://github.com/ilyachvanov/animals

incapsulation inheritance operator-overloading

Last synced: about 1 month ago
JSON representation

🦊🐾A standard project on inheritance

Awesome Lists containing this project

README

        

#Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° классов царства ΠΆΠΈΠ²ΠΎΡ‚Π½Ρ‹Ρ… (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