Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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
- Host: GitHub
- URL: https://github.com/ilyachvanov/animals
- Owner: IlyaChvanov
- Created: 2024-03-08T14:29:16.000Z (10 months ago)
- Default Branch: master
- Last Pushed: 2024-08-21T10:18:25.000Z (5 months ago)
- Last Synced: 2024-08-21T11:47:20.969Z (5 months ago)
- Topics: incapsulation, inheritance, operator-overloading
- Language: C++
- Homepage:
- Size: 684 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
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