Возможные Дубликаты:
C++ pointer multi-inheritance fun.
more c++ multiple inheritance funC++ множественного наследования
Это проблема, которая возникла от операций с реф подсчетом указателя базового класса и нарезание резьб удовольствие.
Дано:
class A{int x, y;};
class B{int xx, yy;};
class C: public A, public B {int z;};
C c;
C* pc = &c;
B* pb = CtoB(pc);
A* pa = CtoA(pc);
assert(pc == AtoC(pa));
assert(pc == BtoC(pb));
Как написать CtoB и CtoA, чтобы получить B & A части C?
Как написать AtoC и BtoC, чтобы вернуть оригинал C?
Спасибо!
Почему голоса закрываются?
Мои предыдущие два вопроса спрашивали, действительно ли что-то (ответ был «нет»); этот вопрос спрашивает: «Каков допустимый способ преобразования указателя».
Вам действительно нужен третий вопрос с той же темой? http://stackoverflow.com/questions/2158512/more-c-multiple-inheritance-fun и http://stackoverflow.com/questions/2157104/c-pointer-multi-inheritance-fun – Trent