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



Pdf көрінісі
бет135/252
Дата06.01.2022
өлшемі12,25 Mb.
#11940
1   ...   131   132   133   134   135   136   137   138   ...   252
Виртуальные функции 
Виртуальная  функция  –  это  функция-член,  чьё  осуществление  может  быть 
подменено  в  классе-потомке.  В  этом  примере  функция-член  talk()  (определена  в 
class  Mammal)  отмечена  как  virtual.  Это  означает,  что  классы-потомки  могут 
выбирать, либо могут не выбирать осуществлять их собственную версию того, что 
функция-член talk() значит.  
Чисто виртуальные функции (и абстрактные 
классы) 
Чисто  виртуальные  функции  это  из  тех,  чьё  осуществление  вам  требуется 
подменить  в  классах-потомках.  Функция  walk()  в  классе  Mammal  чисто 
виртуальная. Она была объявлена таким образом: 
virtual void walk() = 0; 
Вот эта “= 0” часть  в конце предыдущего  кода, это  то, что  делает функцию чисто 
виртуальной.  
Функция  walk()  в  классе  Mammal  чисто  виртуальная  и  это  делает  класс  Mammal 
абстрактным.  Абстрактный  класс  в  С++  это  любой  класс,  имеющий  как  минимум 
одну виртуальную функцию.  
Если класс содержит чисто виртуальную функцию и является абстрактным, то этот 
класс не может быть использован напрямую для создания экземпляра. То есть, вы 
не можете создать объект Mammal сейчас,  от  записи  чисто  виртуальной  функции  
walk(). Если вы попытаетесь выполнить следующий код, вы получите ошибку: 
int main() 

    Mammal mammal; 
}
 


125 | 
С т р а н и ц а
 
 
Если вы попытаетесь создать объект Mammal, то вы получите следующую ошибку:  


Достарыңызбен бөлісу:
1   ...   131   132   133   134   135   136   137   138   ...   252




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

    Басты бет