Virutal base class и наследование
От: Аноним  
Дата: 12.09.09 05:14
Оценка:
Что произойдет, если


class Base {
};


class A    : virtual public Base {
public:
    void print() {
        cout << "class A" << endl;
    }
};

class B : public Base {
public:
    void print() {
        cout << "class B" << endl;
    }
};

class C : public A, public B {
public:
    using A::print;
};

void main() {
    C* ccl = new C();
    ccl->print();

}



т.е. класс B не наследует виртуально. Сколько копий базового класа будет и где?
Re: Virutal base class и наследование
От: Bell Россия  
Дата: 14.09.09 02:18
Оценка:
Здравствуйте, Аноним, Вы писали:

...

А>т.е. класс B не наследует виртуально. Сколько копий базового класа будет и где?

Будет 2 копии — одна копия в подобъекте A, вторая — в подобъекте B.
Похожий пример есть в 10.1/6.
Любите книгу — источник знаний (с) М.Горький
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.