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



Pdf көрінісі
бет131/252
Дата06.01.2022
өлшемі12,25 Mb.
#11940
1   ...   127   128   129   130   131   132   133   134   ...   252
Млекопитающее 
Собака 
Кошка 
Лошадь 
Человек 


120 | 
С т р а н и ц а
 
 
virtual void talk() 

    cout << "
Млекопитающее говорит… подмените эту функцию!" << endl; 

// 
Чистая виртуальная функция, (объясняется ниже) 
virtual void walk() = 0; 
}; 
// 
Следующая строка говорит "класс Собака наследуется от класса Млекопитающее" 
class Dog : public Mammal // : 
двоеточие используется для наследования 
{  
public: 
Dog() 

    cout << "
Собака родилась!" << endl; 
} ~ 
Dog() 

    cout << "
Собака ушла в мир иной" << endl; 

virtual void talk() override 

    cout << "
Гав!" << endl; // собаки говорят только гав! 

// 
осуществление ходьбы для собаки 
virtual void walk() override 

    cout << "
Левая передняя лапа и задняя правая лапа, правая передняя лапа и левая 
задняя лапа… со скоростью" << speed << endl; 

}; 
class Cat : public Mammal // 
класс Кошка наследуется от класса Млекопитающее 
{  
public: 
Cat() 

    cout << "
Кошка родилась" << endl; 

~Cat() 

    cout << "
Кошка ушла в мир иной" << endl; 

virtual void talk() override 

    cout << "
Мяу!" << endl; 

// 
осуществление ходьбы для кошки… такое же как и для собаки! 
virtual void walk() override 

    cout << " 
Левая передняя лапа и задняя правая лапа, правая передняя лапа и левая 
задняя лапа… со скоростью " << speed << endl; 

}; 
class Human : public Mammal // 
класс Человек наследуется от класса Млекопитающее 
{  


121 | 
С т р а н и ц а
 
 
// 
Уникальный элемент данных для Человека (в отличии  от других Млекопитающих) 
bool civilized; 
public: 
Human() 

cout << "
Новый человек родился" << endl; 
speed = 2.0; // 
меняем скорость. Так как конструктор класса-потомка 
// 
запускается после конструктора базового класса, 
// 
устанавливаются специальные для этого класса 
// переменные-члены 
civilized = true; 

~Human() 

    cout << "
Человек ушёл в мир иной" << endl; 

virtual void talk() override 

    cout << "
Я хорошо выгляжу для... человека" << endl; 

// 
осуществление ходьбы для человека.. 
virtual void walk() override 

    cout << "
Левой, правой, левой, правой со скоростью " << speed << endl; 

// 
функция-член уникальна для производного человек 
void attack( Human & other ) 

// 
Человек не будет нападать, если он цивилизован 
if( civilized ) 
    cout << "
Почему один человек должен нападать на другого? Я отказываюсь" << endl; 
else 
    cout << "
Человек нападает на другого!" << endl; 

}; 
int main() 

Human human; 
human.breathe(); // 
для дыхания используется функционал базового класса Млекопитающее
 
human.talk(); 
human.walk(); 
Cat cat; 
cat.breathe(); // 
для дыхания используется функционал базового класса Млекопитающее
 
cat.talk(); 
cat.walk(); 
Dog dog; 
dog.breathe(); 
dog.talk(); 
dog.walk(); 
}
 
Собака, Кошка и Человек, все наследуются от класса Млекопитающее. Это значит, 
что собака, кошка и человек являются млекопитающими, и даже больше. 


122 | 
С т р а н и ц а
 
 


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




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

    Басты бет