Изучаем С++ создавая игры в ue4 Уилльям Шериф Изучайте программирование С++ с интересным применением реально мира, что позволит вам создавать ваши собственные игры!



Pdf көрінісі
бет130/252
Дата06.01.2022
өлшемі12,25 Mb.
#11940
1   ...   126   127   128   129   130   131   132   133   ...   252
Наследование класса 
Вы  используете  наследование,  когда  вы  хотите  создать  новый,  более 
функциональный  класс  кода,  основанный  на  существующем  классе  кода. 
Наследование  важная  тема  для  прохождения.  Давайте  начнём  с  понятия 
производный класс (или подкласс).  
Производные классы 
Наиболее  естественный  способ  рассматривать  наследование,  путём  аналогии  с 
царством  животных.  Классификация  живых  существ  показана  на  следующем 
изображении: 


119 | 
С т р а н и ц а
 
 
 
 
 
 
Эта  диаграмма  означает,  что  Собака,  Кошка,  Лошадь  и  Человек  являются 
Млекопитающими.  Это  означает,  что  собака,  кошка,  лошадь  и  человек  обладают 
общими  характеристиками,  такими  как  общая  система  органов  (мозг  с 
неокортексом,  лёгкие,  печень  и  матка  для  особей  женского  пола),  в  то  же  время 
абсолютно отличаясь друг от друга в других отношениях.  
Что бы это значило, если бы вы писали код существ? Вам нужно было бы лишь раз 
спрограммировать  общую  функциональность.  Затем,  вы  применили  бы  код  для 
различных частей, специально для каждого класса собак, кошек, лошадей и людей.  
Конкретный пример для схемы сверху: 
#include  
using namespace std; 
class Mammal // 
класс Млекопитающее 
{  
protected: 
// 
защищённые (protected) переменные похожи на частные (private)  переменные.   
// 
они доступны в этом классе, но не снаружи класса. 
// 
разница между protected и private в том, 
// 
что protected означает доступность и для происходящих подклассов 
int hp; 
double speed; 
public: 
// 
Конструктор млекопитающих – запускается ПЕРВЫМ до конструкторов классов-потомков! 
Mammal() 

hp = 100; 
speed = 1.0; 
cout << "
Млекопитающее создано!" << endl; 
}  
~Mammal() 

cout << "
Млекопитающее скончалось!" << endl; 
}  
// 
Общая функция для всех Млекопитающих и производных 
void breathe() 

    cout << "
Вдох... выдох" << endl; 



Достарыңызбен бөлісу:
1   ...   126   127   128   129   130   131   132   133   ...   252




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет