Derived Classes

Question:
Functions are inherited easily. But if you have a variable in the base class and you want have the same variable but with a different type in the derived class, what to do then? for instance:

class A{.......}class B{.......}class Base{  A MyClass;}class Child:public Base{ B MyClass;}

What happens in this case? I always encounter with pointer errors. Why?

Answer:
I have never tried this, but it appears that C++ provides no support for virtual variables. Just as well, really, since virtual functions involve a lookup table, which doesn’t seem like it would work very well with variables.

I really can’t image why this should be a limitation, though. In general, member variables are not accessed directly. Rather, they are accessed through member functions. You should be thinking in terms of adding a new variable to your derived class and override any methods that are affected by this different variable.

Share the Post:
Share on facebook
Share on twitter
Share on linkedin

Overview

Recent Articles: