Лучший ответ

    1.  1 0

    Eska (32) 6 (5585)21328 15 лет  

    мм?ты программист? похоже нет , раз юзать гугл не умеешь ..
    Виртуальный метод (виртуальная функция) — в объектно-ориентированном программировании метод (функция) класса, который может быть переопределён в классах-наследниках так, что конкретная реализация метода для вызова будет определяться во время исполнения. Таким образом, программисту необязательно знать точный тип объекта для работы с ним через виртуальные методы: достаточно лишь знать, что объект принадлежит классу или наследнику класса, в котором метод объявлен.

    Виртуальные методы — один из важнейших приёмов реализации полиморфизма. Они позволяют создавать общий код, который может работать как с объектами базового класса, так и с объектами любого его класса-наследника. При этом, базовый класс определяет способ работы с объектами и любые его наследники могут предоставлять конкретную реализацию этого способа. В некоторых языках программирования, например в Java, нету понятия виртуального метода, данное понятие следует применять лишь для языков в которых методы родительского класса не могут быть переопределены по умолчанию, а только с помощью некоторых вспомоготельных ключевых слов.

    Базовый класс может и не предоставлять реализации виртуального метода, а только декларировать его существование. Такие методы без реализации называются «чисто виртуальными» (калька с англ. pure virtual) или абстрактными. Класс, содержащий хотя бы один такой метод, тоже будет абстрактным. Объект такого класса создать нельзя (в некоторых языках допускается, но вызов абстрактного метода приведёт к ошибке). Наследники абстрактного класса должны предоставить реализацию для всех его абстрактных методов, иначе они, в свою очередь, будут абстрактными классами.

    Для каждого класса, имеющего хотя бы один виртуальный метод, создаётся таблица виртуальных методов. Каждый объект хранит указатель на таблицу своего класса. Для вызова виртуального метода используется такой механизм: из объекта берётся указатель на соответствующую таблицу виртуальных методов, а из неё, по фиксированному смещению, — указатель на реализацию метода, используемого для данного класса. При использовании множественного наследования или интерфейсов ситуация несколько усложняется за счёт того, что таблица виртуальных методов становится нелинейной.

Ответы

    1.  0 0

    antoxz (28) 6 (7446)2729 15 лет  

    Насколько знаю, это метод, имеющий декларацию (прототип), но не имплементацию (реализацию). Наследники класса (имеющего виртуальный метод) обязательно должны этот метод реализовать.

    1.  0 0

    pilum 6 (17443)52353 15 лет  

    Декларированный в объявлении класса, но не определенный.

    Для различного переопределения в классах-потомках. Полиморфизм.





Похожие вопросы

Рейтинг@Mail.ru Top.LV PULS.LV Professional rating system