Я довольно долго занимался Java-проектом, и вызов виртуальных функций родителя проходил так:
int func(..) {
super.func(..);
}
Но теперь, когда я возвращаюсь в C ++, я думал, что это будет работать (для Конструкторов это работает), но я ошибся. Я даже забыл, как это называется. ((Component)this)->func();
тоже не работает, поэтому я потерялся.
int Label::func() : Component::func() {
}
Как это сделано правильно?
Заранее спасибо!
Вы должны явно вызвать функцию из суперкласса:
int Label::func()
{
return Component::func();
}
Я видел это раньше (хотя в C ++ люди часто говорят, что Base вместо Super):
class Label : Component
{
typedef Component Super;
int func()
{
Super::func();
}
};