Back to questions
101ХР
Junior — Middle
83
Можете объяснить, что означает термин 'virtual' в контексте программирования и как он используется?
Companies where asked
Answer from AI
sobes.tech AI
В программировании, особенно в C++, ключевое слово virtual используется для объявления виртуальных функций — методов, которые могут быть переопределены в производных классах и обеспечивают динамический (полиморфный) вызов.
Это означает, что при вызове метода через указатель или ссылку на базовый класс будет вызвана версия метода, соответствующая реальному типу объекта, а не типу указателя.
Пример:
#include <iostream>
class Base {
public:
virtual void show() { // виртуальная функция
std::cout << "Base show" << std::endl;
}
};
class Derived : public Base {
public:
void show() override { // переопределение
std::cout << "Derived show" << std::endl;
}
};
int main() {
Base* ptr = new Derived();
ptr->show(); // вызовется Derived::show благодаря virtual
delete ptr;
return 0;
}
Если убрать virtual, то вызов ptr->show() вызовет метод базового класса, даже если объект реально типа Derived.
Таким образом, virtual позволяет реализовать полиморфизм — важный принцип объектно-ориентированного программирования.