如何从派生类修改父类的变量?

How to modify parent class' variables from a derived class?

本文关键字:父类 变量 修改 派生      更新时间:2023-10-16

我很确定我知道为什么这不起作用,但我如何使它工作?好的,所以我有一个父类,它有一堆虚函数和 1 个非虚函数

前任:

class Parent
{
private: 
    int variable;
public:
    virtual void firstfunction(); 
    virtual void secondfunction(); 
    void nonvirtualfunction();
};
Parent::nonvirtualfunction()
{
    variable = 5;
}

我有一个继承自父类的子类

class Child : public Parent
{
    void firstfunction();
    void secondfunction();
}
Child::secondfunction()
{
    Parent::nonvirtualfunction();
}

当我在子类中调用非虚拟函数时,它不会更改父类中的值。如何做到这一点,以便我可以更改子类中的父类变量?

您的示例代码确实有效:http://ideone.com/zRvp93

示例中唯一的主要问题是 Child 的成员函数是私有的,Parent::nonvirtualfunctionChild::secondfunction缺少其返回类型。