Виртуальная реальность: новые возможности и перспективы
С ключевым словом virtual в языке программирования C++ связано понятие полиморфизма. Оно позволяет использовать виртуальные функции и создавать иерархии классов, что способствует более гибкому и эффективному программированию.
В языке C++ виртуальные функции объявляются в базовом классе с помощью ключевого слова virtual. При наследовании классов можно переопределить виртуальную функцию в производном классе, что гарантирует вызов нужной версии функции при работе с объектами разных классов.
<pre>
<code class="cpp">
#include <iostream>
using namespace std;
class Base {
public:
virtual void print() {
cout << "Вызвана функция print() в классе Base" << endl;
}
};
class Derived : public Base {
public:
void print() {
cout << "Вызвана функция print() в классе Derived" << endl;
}
};
int main() {
Base* base_ptr;
Base obj_base;
Derived obj_derived;
base_ptr = &obj_derived; // указатель базового класса указывает на объект производного класса
base_ptr->print(); // будет вызвана переопределенная версия функции print() в классе Derived
return 0;
}
</code>
</pre>
В данном примере создается базовый класс Base, содержащий виртуальную функцию print(). Производный класс Derived наследуется от базового класса и переопределяет функцию print(), чтобы привести к выводу сообщения о вызове именно в этом классе.
В функции main() создаются объекты базового и производного классов, а также указатель базового класса base_ptr, которому присваивается адрес объекта производного класса. При вызове base_ptr->print() в результате использования виртуальных функций будет вызвана переопределенная версия функции print() в производном классе Derived, и будет выведено сообщение "Вызвана функция print() в классе Derived".