В C ++ вы не можете переопределить поле.Только методы могут быть переопределены.Следовательно, ваше объявление переменной m
в классе Bar
- это новое поле, которое скрывает версию m
базового класса Foo
.
Если вы хотите получить доступ к Foo
m
из Bar
, тогда вы можете использовать этот синтаксис:
Bar::Bar(){
this->Foo::m = 10.0f;
}
, который явно указывает компилятору записать в Foo
версию m
.Кроме того, вы можете оставить this->
и просто написать
Bar::Bar(){
Foo::m = 10.0f;
}
Надеюсь, это поможет!