Цитата:
Сообщение от alexer
Там задали интересный вопрос: будет ли разным размер структуры с одной виртуальной функцией и с десятью и почему.
|
Я тут задумался, как решается ситуация с множественным наследованием. По идее возможно два подхода. Можно строить какую-то единственную "обобщенную" таблицу виртуальных функций и иметь только один указатель на нее (что уменьшает размер структуры и упрощает поиск в ней). Либо можно иметь в структуре N (по количеству базовых классов) указателей на различные виртуальные таблицы (что увеличивает размер структуры на N * sizeof(pointer)). В gcc, судя по размерам производного класса, выбрали вариант с N указателями, любопытно достаточно... Надеюсь там не приходится динамически искать методы в каждой из виртуальных таблиц.
|