从child调用父方法,类似于调用"super"(C++)

jac*_*kie 3 c++ inheritance

是否可以在子方法中"重用"父方法并添加功能,就像在Java中使用super运算符一样?

parent.method(int a){
  a++;
}

child.method(int a /*would be nice w/out*/){
  printf("%d",a);
}
Run Code Online (Sandbox Code Playgroud)

我知道这可能是一个非常基本的问题,抱歉.

我知道我可以将方法复制/粘贴到子类,并通过重载在那里添加功能; 我正在寻找一种更方便的方式.

Kon*_*rad 6

您可以使用__super执行此操作,但它是Microsoft扩展.

void CChild::function( int nParam )
{
    __super::function( nParam );
}
Run Code Online (Sandbox Code Playgroud)

或者,您可以从派生类显式调用基本实现:

void CChild::function( int nParam )
{
    CParent::function( nParam );
}
Run Code Online (Sandbox Code Playgroud)


hmj*_*mjd 6

您可以通过使用父类的名称限定成员函数名称来调用子成员函数中的父成员函数:

void child::method()
{
    parent::method();
}
Run Code Online (Sandbox Code Playgroud)