Why the error & how to resolve it?
You need to provide definitions for all virtual functions in class A
. Only pure virtual functions are allowed to have no definitions.
i.e: In class A
both the methods:
virtual ~A();
virtual void doWork();
should be defined(should have a body)
e.g.:
A.cpp
void A::doWork()
{
}
A::~A()
{
}
Caveat:
If you want your class A
to act as an interface(a.k.a Abstract class in C++) then you should make the method pure virtual.
virtual void doWork() = 0;
Good Read:
What does it mean that the “virtual table” is an unresolved external?
When building C++, the linker says my constructors, destructors or virtual tables are undefined.