Я расстраиваюсь каким-то странным поведением и задаюсь вопросом, принимаю ли я что-то в порядке, когда это не так. Имеет ли значение следующее: я могу изменить m_flag
в переопределенном foo()
? Если так, происходит что-то более зловещее, поскольку я вижу m_flag
как одно, а затем сообщаю только о чем-то еще, когда я нахожусь на шаг B::foo()
, когда знаю, что я не активно его модифицировал.Можно ли изменить переменную частного члена в переопределенном методе?
class A {
public:
virtual void foo() {
// Do something.
}
};
class B : public A{
public:
virtual public void foo() {
m_flag++;
}
private:
volatile uint8_t m_flag;
};
этого использование должно быть хорошо. из интереса, почему это летучее? – Useless
Да, конечно, это действует. –
'm_flag ++;' на bool-типе ?! – Bathsheba