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



Pdf көрінісі
бет139/252
Дата06.01.2022
өлшемі12,25 Mb.
#11940
1   ...   135   136   137   138   139   140   141   142   ...   252
Байланысты:
аа

.h и .cpp  
Следующий уровень организации, это оставить объявления класса в заголовочном 
файле  (.h)  и  поместить  сами  тела  осуществления  функций  в  новые  файлы  .cpp.  А 
также оставить существующие элементы в объявлении класса Mammal.  
Для каждого файла выполните следующие операции: 
1.  Удалите  тело  всех  функций  (код  между  {  и  })  и  просто  замените  их  на 
двоеточие. Для класса Mammal, это будет выглядеть так: 
// Mammal.h 
#pragma once 
class Mammal 
{  
protected: 
int hp; 
double speed; 
public: 
Mammal(); 
~Mammal(); 
void breathe(); 
virtual void talk(); 
// 
чистая виртуальная функция, 
virtual void walk() = 0; 
}; 
2.  Создайте  новый  файл  .cpp  и    назовите  его  Mammal.cpp.  Затем  просто 
поместите тело функций в этот класс: 
// Mammal.cpp 
#include  
using namespace std; 
#include "Mammal.h" 
Mammal::Mammal() // 
Обратите внимание на: use of :: (оператор разрешения области 
// видимости) 



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

cout << "
Млекопитающее скончалось!" << endl; 
}  
void Mammal::breathe()
 

cout << "
Вдох… выдох" << endl; 
}  
void Mammal::talk() 

cout << "
Млекопитающее говорит... подмените эту функцию!" << endl; 
}
 
Важно  обратить  внимание  на  использование  имени  класса  и  на  оператор 
разрешения  области  видимости  (двойное  двоеточие),  когда  объявляете  тело 
функции-члена.    Всем  функциям-членам,  принадлежащим  к  классу  Mammal,  мы 
добавляем приставку Mammal::. 
Обратите  внимание  на  то,  что  чисто  виртуальная  функция  не  имеет  тела, 
собственно  так  и  должно  быть!  Чисто виртуальные  функции  просто  объявлены  (и 
им присвоено начальное значение 0) в базовом классе, но осуществляются позже в 
производных классах.  


Достарыңызбен бөлісу:
1   ...   135   136   137   138   139   140   141   142   ...   252




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

    Басты бет