Kasowanie delete poprzez interfejs

0

Witam

Mam taki problem :

class in
{
public:
virtual void a()=0;
};

class foo:public in
{public:
void a(){x = 10;}
int x=0;
};

in * m = new foo();

delete m;

na tej przykładowej klasie wszystko dziala. Na mojej która jest identycznie stworzona tylko ze wieksza wyskakuje mi blad : BLOCK_TYPE_IS_VALID(pHead->nBlock) debug asertion faild

sprawdzalem w ten sposob :
foo * m = new foo();
delete m;
i dziala jak trzeba

co moze powodowac problem ?

0

Brak wirtualnego destruktora w interfejsie?

0

ehh moze za bardzo sie pospieszylem aby tu wstawic pytanie, problem rozwiazany ale z czyms podobnym sie jeszcze nie spotkalem : Aby dzialalo musiałem zmienić kolejność interfejsów przy definicji klasy z :

class dom : public interfejsPierwszy, public InterfejsDrugi
{};

0

to sugeruje ze nakopane masz jeszcze gdzies indziej

1 użytkowników online, w tym zalogowanych: 0, gości: 1