Hi Ian...
Thankyou for replying!
well here is the code with the implentations, however no luck I still get
the same 2 errors....
===================================================
//==//ADT BASE CLASS
class components
{
public:
components();
virtual ~components() {}
virtual void ACommonMethod()= 0;
private:
int a;
};
void components::ACommonMethod()
{
a = 10;
}
//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:
int zzz;
};
void A_SETV::ACommonMethod()
{
components::ACommonMethod();
}
void A_SETV::InnitStep()
{
zzz = 20;
}
=====================================================
I don't know what else to try... I don't have much experience with
creating
classes with inheritance and polymorphsim!
Do you have any other idea of what can be generating these errors....?
or let me know if I made a mistake in my code this time around!
Your help is much appreciated in getting me over this hurdle!
Thankyou very much!
--
Best regards
Robert
"Ian" wrote:
"Robby" <Robby@discussions.microsoft.com> wrote in message
news:565FC2E2-80B3-41AA-A79C-FB8CE1657663@microsoft.com...
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
it compiles OK, it doesn't link because you haven't provided the
implementation