ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
28 ноября
173142 Топик полностью
fms (22.11.2009 00:03, просмотров: 110) ответил megajohn на а в итоге, эта таблица виртуальных функций как реализуется компилятором ? Подсавит или создаст и проиннициализирует указатели ?
Не совсем вопрос понял. Если вы о механизме реализации виртуальных функций - то да, компилятор создаст и проинициализирует таблицу виртуальных функций. При этом виртуальная функция не обязательно будет вызвана через таблицу.  class Uart { public: virtual void put(char c)=0; }; class Uart1: public Uart { public: virtual void put(char c) {} }; int main(){ Uart1 u1; Uart* u = &u1; // Вызов через таблицу виртуальных функций u->put(1); // Обычный вызов функции-члена класса u1.put(1); } В первом случае используется механизм вызова виртуальных функций, во втором компилятор "знает" какому классу принадлежит объект и использует непосредственный вызов.