Quantcast
Channel: Linux.org.ru: Форум (тех. форум)
Viewing all articles
Browse latest Browse all 73859

virtual public наследование, есть вопросы

$
0
0

Изучаю множественное наследование:

Есть ли (желательно русскоязычные) источники у кого под рукой, как работает механизм виртуального наследования (под капотом )

Внешне то понятно, в любом учебнике есть, но как внутри реализовано - найти не получилось с первой попытки.

т.е. как там в vtbl(?) заносятся отсылки на члены базового класса (именно судя по всему на переменные методы все же будут сдублированны, т.е. D будет содержать 3 метода f() и еще свой ) как там формируются методы.

например немного не понятно, почему если

A { virtual void f(); };
B: virtual public A { void f();};
C: virtual public A { void f();};

D: public B, public C {}; не описать метод B: void f(); - то компилятор скажет типа не знаю какую ф-ю выбрать.

т.е. даже если в D void f() не нужен - нужно сделать его пустое тело.

Но при этом, если мы бы имели не виртуальное наследование то без void f() в D скомилялось бы.

 


Viewing all articles
Browse latest Browse all 73859

Trending Articles