Sobes.tech
Junior — Middle
106

Бағдарламалау контекстінде 'virtual' термині не білдіреді және оны қалай қолданады?

Сұралған компаниялар
101ХР101ХР

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