我在一些Java项目中很长时间,并且调用父项的虚函数是这样的:
int func(..) {
super.func(..);
}
但现在当我回到C ++时,这就是我认为它的工作方式(对于Constructors这样有效),但是我错了。我甚至忘记了这是怎么称呼的。 ((Component)this)->func();
也不起作用,所以我迷路了。
int Label::func() : Component::func() {
}
如何正确完成?
提前致谢!
答案 0 :(得分:6)
你应该明确地从超类调用函数:
int Label::func()
{
return Component::func();
}
答案 1 :(得分:4)
我以前见过这个(尽管在C ++中人们经常说Base而不是Super):
class Label : Component
{
typedef Component Super;
int func()
{
Super::func();
}
};