1

私はいくつかのJavaプロジェクトでかなり長く、親の仮想関数の呼び出しは次のようになりました。

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

しかし、C ++に戻ると、これは私が思っていた方法です(コンストラクターの場合、これは機能します)が、私は間違っていました。私はこれがどのように呼ばれるかさえ忘れました。((Component)this)->func();どちらも機能しないので、私は迷子になります。

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

それはどのように正しく行われますか?

前もって感謝します!

4

2 に答える 2

6

スーパークラスから関数を明示的に呼び出す必要があります。

int Label::func() 
{
    return Component::func();
}
于 2012-10-06T09:49:44.230 に答える
4

私は以前にこれを見たことがあります(C ++では人々はしばしばスーパーではなくベースと言いますが):

class Label : Component
{
   typedef Component Super;

   int func()
   {
     Super::func();
   }
};
于 2012-10-06T09:59:59.953 に答える