是否可以在 C++ 中从 super 更改派生类的变量?
(举个例子可能会让我的问题更清楚..)
假设我有以下类和函数:
class SuperClass // super class
{
int myClassVariable;
public:
virtual void modify()
{
myClassVariable = 10;
}
};
class DerivedClass : public SuperClass // derived class
{
int myClassVariable;
public:
void modify()
{
super::modify();
}
};
如果我执行以下操作:
DerivedClass d;
d.modify();
问题:谁的 myClassVariable
被修改为 10?父类(super class)还是派生类?
(预先感谢您的耐心和帮助..希望我的问题不是一个愚蠢的问题!)
谢谢:)
最佳答案
它是父类,因为成员是在父类中修改的,成员不能是虚的,只有方法可以是虚的。
另请注意,modify() 在派生类中不是虚函数(相对于父类(super class)而言),它仅对派生类的子类是虚函数,因为 modify() 未在父类(super class)中声明为虚函数。
关于c++ - 通过调用 super 改变类变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6145715/