Polymorphism?
Hello,
I though I had understood the concept of inheritance, poymorphism and
ADT's... but I guess there is still some minor details that escape me.
Please consider the following code:
==================================================
//ADT BASE CLASS
class components
{
public:
components();
virtual ~components();
virtual void ACommonMethod()= 0;
protected:
};
//ADT
class actions:public components
{
public:
actions();
virtual ~actions();
};
class A_SETV:public actions
{
public:
A_SETV();
virtual ~A_SETV();
virtual void ACommonMethod();
virtual void InnitStep();
protected:
};
//Instantiate a A_SETV object so I can fetch its methods
components *pA_SETV = new A_SETV;
//Fetch A_SETV method
pA_SETV->ACommonMethod();
delete pSetV;
==================================================
The following code fragment gives me the following errors:
WndProc.obj : error LNK2019: unresolved external symbol "public: __thiscall
A_SETV::A_SETV(void)" (??0A_SETV@@QAE@XZ) referenced in function "long
__stdcall WndProc(struct HWND__ *,unsigned int,unsigned int,long)"
(?WndProc@@YGJPAUHWND__@@IIJ@Z)
Debug/MT_3.exe : fatal error LNK1120: 1 unresolved externals
I don't know what I am doing wrong.. I have declared a simple ADT (abstract
data type) called 'components' and made another class derive from the base
class called 'actions' which is another ADT. The reason why I beleive that
actions is an ADT is because it does not overide the pure virtual function in
the base class...right!
Then I derived another class from actions called A_SETV and I was trying to
fetch a common method in the base class by doing:
components *pA_SETV = new A_SETV;
pA_SETV->ACommonMethod();
I also tried to fetch a method in the A_SETV class as so:
A_SETV *pA_SETV = new A_SETV;
pA_SETV->virtual void InnitStep();
In either case I always get the errors stipulated above....
PS... and the best part of all this, is that, last night, this program
compile withou any errors..... confused, I ask my self, what's going on!
Can someone help....
All suggestions a very appreciated!
Thankyou all!
--
Best regards
Robert