我觉得这应该很容易,但是我仍然无法正常工作。
我不知道什么是最佳实践。首先,我尝试通过引用将传递给子类的变量存储起来,然后在子类中对其进行调用。例外,当变量在父类中更改时,子级看不到更改。
孩子:
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/