Re: Problem with multiple inheritance
Things don't quite add up.
If InheritFromC is only in AB and ABC then how can you call it on a A *
object in your MyFunction without any casts?
Have you tried dynamic type casting? That might eliminate your problem.
(you have to turn on the RTTI compiler settings)
void MyFunction(A *myObject)
{
C *mySecondObject = dynamic_cast<C*>(myObject);
if (myObject != NULL)
{
mySecondObject->I_Am_From_C();
}
}
AliR.
"No_Name" <no_mail@no_mail.com> wrote in message
news:go14f3$h38$1@aioe.org...
Hello,
I work on an application with multiple inheritance. I work with Visual C++
2005 & Windows CE.
I have a class named A.
I have a class named AB which inherits from A.
I have a class named C.
Class C has a function I_Am_From_C().
I have a class named ABC which inherits from AB and from C.
Class AB has a function InheritsFromC() which gives false;
Class ABC has a function InheritsFromC() which gives true;
I am trying to write generic C++ code to be able to deal with my classes.
In my code, O is an object coming from another function. It can be an AB
or an ABC object.
I write the following :
void MyFunction(A *myObject)
{
C *mySecondObject;
if (myObject->InheritsFromC() == true)
{
mySecondObject = (C *)myObject;
mySecondObject->I_Am_From_C();
}
}
but when I make this code run, the calling of the I_Am_From_C() function
crashes, and in debug I can see that the C object named mySecondObject is
not correctly initialized (all his parameters have random values).
Isn't it a good way to manage myObject when it inherits from C ? Can you
help me with a better way to be able to call the I_Am_From_C() function
from myObject where it effectively inherits from C ?
Thank you very much !