Re: виртуальное наследование
От: Alxndr Германия http://www.google.com/profiles/alexander.poluektov#buzz
Дата: 31.03.10 14:04
Оценка: 8 (1) +1
Здравствуйте, nen777w, Вы писали:

N>В чём заключается причина не компиляции следующего кода.

N>(Если убрать virtual — наследование то всё будет компилироваться)
N>Мне просто интересно почему в случае с virtual компилятору понадобился default — конструктор?

Конструктор базового виртуального класса должен вызываться из конструктора полного объекта (most derived класса)

N>
N>class Base
N>{
N>public:
N>    Base( int n ) : m_n(n) {}
N>private:
N>    int m_n;
N>};

N>class Derived : public virtual Base
N>{
N>public:
N>    Derived( int n ) : Base( n ) {}
N>};

N>class SubDerived : public Derived
N>{
N>public:
N>    SubDerived( int n, int m ) : Derived( n ), Base( n ) {}
N>};
N>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.