C ++相当于Java的`super.func();`?

时间:2012-10-06 09:48:02

标签: java c++ virtual-functions

我在一些Java项目中很长时间,并且调用父项的虚函数是这样的:

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

但现在当我回到C ++时,这就是我认为它的工作方式(对于Constructors这样有效),但是我错了。我甚至忘记了这是怎么称呼的。 ((Component)this)->func();也不起作用,所以我迷路了。

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

如何正确完成?

提前致谢!

2 个答案:

答案 0 :(得分:6)

你应该明确地从超类调用函数:

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

答案 1 :(得分:4)

我以前见过这个(尽管在C ++中人们经常说Base而不是Super):

class Label : Component
{
   typedef Component Super;

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