Sobes.tech
Back to questions
Junior — Middle
83

Можете объяснить, что означает термин 'virtual' в контексте программирования и как он используется?

Companies where asked
101ХР101ХР

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 позволяет реализовать полиморфизм — важный принцип объектно-ориентированного программирования.