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



Pdf көрінісі
бет129/252
Дата06.01.2022
өлшемі12,25 Mb.
#11940
1   ...   125   126   127   128   129   130   131   132   ...   252
Конструкторы и деструкторы 
Конструктор  в  вашем  С++  коде,  это  простая  маленькая  функция,  которая 
запускается  один  раз,  когда  впервые  создан  С++  объект.  Деструктор  запускается 
один  раз,  когда  объект  С++  ликвидируется.  Скажем,  у  нас  есть  следующая 
программа: 
#include  
#include  
using namespace std; 
class Player 
{  
private: 
string name; // 
недоступно снаружи этого класса! 
public: 
string getName(){ return name; } 
// 
Конструктор! 
Player() 

cout << "
Объект Player сконструирован" << endl; 
name = "Diplo"; 

// ~
Деструктор (~ это не опечатка!) 


118 | 
С т р а н и ц а
 
 
~Player() 

cout 
<< "Объект Player ликвидирован" << endl; 

}; 
int main() 

Player player; 
cout << "Player 
назван '" << player.getName() << "'" << endl; 

// 
объект игрока ликвидирован здесь 
Итак, здесь мы создали объект Player. Вывод этого кода будем следующим: 
Объект Player сконструирован 
Player назван ‘Diplo’ 
Объект Player ликвидирован 
Первое,  что  происходит  в  ходе  конструирования,  собственно  запускается 
конструктор.  Что  выводит  строку:  “
Объект  Player  сконструирован
”.  Следом  за  этим, 
выводится  строка  с  именем  игрока:  “
Player  назван  ‘Diplo’
”.  Почему  игрок  назван 
Diplo? Потому что это имя назначено в конструкторе Player().   
И  вот,  в  конце  программы,  вызывается  деструктор  игрока,  и  мы  видим:  “
 
Объект 
Player  ликвидирован
”.  Объект  игрока  ликвидируется,  когда  он  выходит  за  область 
действия в конце main() (за предел } утверждения main). 
Итак, для чего хороши конструкторы и деструкторы? Определённо они появляются 
для:  установки  и  удаления  объекта.  Конструктор  может  использоваться  для 
назначения  начальных  полей  данных,  а  деструктор  для  вызова  удаления  любых 
динамически  распределённых  ресурсов  (мы  ещё  не  проходили  динамически 
распределённые ресурсы, так что не беспокойтесь об этом пока). 


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




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

    Басты бет