C
Crucian
Здравствуйте господа програмисты.
Есть такой вопрос:
Base-базовый класс.
От него наследую класс Child, при этом использую виртуальное наследование.
Ошибка возникает на этапе выполнения программы в момент
вызова delete. Причем только в случае виртуального наследования.
Подскажите как удалить объект, оставив виртуальное наследование.
Есть такой вопрос:
Base-базовый класс.
От него наследую класс Child, при этом использую виртуальное наследование.
Код:
//----------------------Base.h-----------
class Base
{public:
virtual void Move(int dx,int dy)=0;
};
//----------------------Child.h-----------
#include "Base.h"
class Child:virtual public Base
{ public:
int X;
int Y;
Child(int _X,int _Y)
{X=_X;Y=_Y;}
void Move(int dx,int dy)
{X=X+dx;Y=Y+dy;}
};
//------------------Main.h-------------------
void main()
{
Base* sh=new Child(0,0);
delete sh;
sh=0;
}
Ошибка возникает на этапе выполнения программы в момент
вызова delete. Причем только в случае виртуального наследования.
Подскажите как удалить объект, оставив виртуальное наследование.