Re: A simple problem with an abstract class...
Jim Brown schrieb:
Hi,
I'm working an a large legacy app that is built with Makefiles using the
Microsoft Visual Studio 8/VC/BIN/cl.EXE compiler. I have a crazy problem
that I'm hoping someone has seen before. I've included a simplified version
of the problem that runs fine in a VC++ console test project. The project
crashes if I instantiate an object of class B without commenting out the
call to the pure virtual function x() in A::doIt(); Naturally, B deals with
objects derived from A.
Thanks for taking a look.
class A
{
public:
void doIt() { x(); }
virtual void x() = 0;
virtual ~A() {}
};
class B
{
public:
B() {}
void push(A* pA) { ... }
A* pop() { A* pA = ...; return pA; }
void tryIt() { A* pA = pop(); pA->doIt(); }
};
I would assume B has to handle some A derived class that did not overload x()
(however that happended). You could verify that by creating a default
implementation of A::x() that ASSERTS or breaks in the debugger.
Norbert