C ++ эквивалентен Java `super.func ();`?

Я довольно долго занимался Java-проектом, и вызов виртуальных функций родителя проходил так:

int func(..) {
super.func(..);
}

Но теперь, когда я возвращаюсь в C ++, я думал, что это будет работать (для Конструкторов это работает), но я ошибся. Я даже забыл, как это называется. ((Component)this)->func(); тоже не работает, поэтому я потерялся.

int Label::func() : Component::func() {
}

Как это сделано правильно?

Заранее спасибо!

1

Решение

Вы должны явно вызвать функцию из суперкласса:

int Label::func()
{
return Component::func();
}
6

Другие решения

Я видел это раньше (хотя в C ++ люди часто говорят, что Base вместо Super):

class Label : Component
{
typedef Component Super;

int func()
{
Super::func();
}
};
4

По вопросам рекламы [email protected]