If a parent class has a pure virtual destructor, how can I proper inherit from it? I have a header file (generated by IBM Rational Rose) which looks like this:
class MyClass{
protected:
inline MyClass() {};
MyClass(const MyClass&);
MyClass& operator=(const MyClass&);
public:
inline virtual ~MyClass() = 0;
virtual void someMethod() = 0;
};
Now I want to implement this pure-abstract class - i.e.
class MyClassImpl : public MyClass {
public:
MyClassImpl(){}
virtual void someMethod() {}
};
int main(int argc, char*argv[]) {
MyClassImpl impl;
return 0;
}
But whatever I try (i.e. define a destructor in MyClassImpl; virtual/non-virtual), I keep getting the error message: error LNK2019: unresolved external symbol "public: virtual __thiscall MyClass::~MyClass(void)" (??1MyClass@@UAE@XZ) referenced in function "public: virtual __thiscall MyClassImpl::~MyClassImpl(void)" (??1MyClassImpl@@UAE@XZ)
.
Is there any way to implement MyClassImpl
without changes to MyClass
?