【发布时间】:2013-07-20 21:56:27
【问题描述】:
我学习了虚函数的工作:如果继承的类从基类继承一个函数,并且每个函数都是自定义的,我可以用指向基类的指针调用这些函数,这样:
BaseClass* PointerName = &InheritedClassObject;
但是变量呢?我在网站上找到了this question,它告诉我:我无法在 C++ 中创建虚拟变量。我的经验证明了这一点:对于变量,Visual C++ 说:'virtual' is not allowed。
那么,使用基类指针来获取属于继承类的(n 个继承的)变量的值的方法是什么?
【问题讨论】:
-
你的基类怎么知道一个变量将被添加到从它派生的每个类中? (并且对于每个派生类等,此变量将具有相同的类型。)
-
我想调用从基类继承的变量,因此所有继承的类都有它们。
-
你能举个例子吗?您的问题可能有一个非常简单的解决方案。
-
@ZoltánSchmidt 查看我的回答。我认为问题的措辞可能有些混乱。如果没有,请告诉我,我将删除我的回复。
-
@DyP 我的确切问题是这样的表达式:
PointerArray[Object.X][Object.Y] = &Object;(其中Object是继承的类对象,X和Y是从基类继承的)什么也不做。PointerArray[Object.X][Object.Y]的值仍然相同,最肯定是因为X或Y都没有被调用。 @史蒂夫P。好的!
标签: c++ oop pointers inheritance virtual-functions