我觉得这应该很容易,但是我仍然无法正常工作。

我不知道什么是最佳实践。首先,我尝试通过引用将传递给子类的变量存储起来,然后在子类中对其进行调用。例外,当变量在父类中更改时,子级看不到更改。

孩子:

class Child
{
public:
    Child(bool &EndLoop);
    ~Child();

private:
    bool EndLoopRef;
};

Child::Child (bool &EndLoop) : EndLoopRef(EndLoop)
{
}

Child::PrimaryFunction()
{
    while (!Child::EndLoopRef)
    {
        // Main app function is in here
    }

    // EndLoop is true, we can now leave this method
}


父母:

class Parent
{
public:
    Parent();
    ~Parent();

private:
   bool EndLoop;
};

Parent::Parent()
{
    Child childclass(EndLoop);
    childclass.PrimaryFunction();

    // EndLoop was changed and the loop is now overe
}


总结一下,父类通过引用传递EndLoop。子类存储此引用,并等待EndLoopRef的真值退出循环。不用说,它并没有结束循环。

仅供参考,EndLoop值由父类中的系统调用更改。

最佳答案

给您的班级成员bool EndLoopRef;命名不会使其成为参考。这仍然只是一个bool值,构造函数的成员初始化将在构造时加载EndLoop的值。

您已经显示出知道如何使用&定义引用。

关于c++ - 访问父类变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37820655/

10-09 20:40