如何从派生类函数调用父类函数?

我如何使用C ++从派生类调用父函数? 例如,我有一个名为parent的类和一个从父类派生的称为child的类。 每班有一个print功能。 在定义孩子的打印功能时,我想打电话给家长打印功能。 我会如何去做这件事?


我将冒风险说明明显的情况:如果在基类中定义了该函数,它就会在派生类中自动提供(除非它是private ),则调用该函数。

如果在派生类中有一个具有相同签名的函数,则可以通过添加基类名称和两个冒号base_class::foo(...)来消除歧义。 你应该注意到,不像Java和C#,C ++ 具备“基础类”(关键字superbase ),因为C ++支持多重继承,这可能导致歧义。

class left {
public:
    void foo();
};

class right {
public:
    void foo();
};

class bottom : public left, public right {
public:
    void foo()
    {
        //base::foo();// ambiguous
        left::foo();
        right::foo();

        // and when foo() is not called for 'this':
        bottom b;
        b.left::foo();  // calls b.foo() from 'left'
        b.right::foo();  // call b.foo() from 'right'
    }
};

顺便说一句,你不能直接从同一个类派生两次,因为没有办法在另一个基类之间引用其中一个基类。

class bottom : public left, public left { // Illegal
};

给定名为Parent父类和名为Child子类,

你可以做这样的事情:

void Child::print(int x) {
    Parent::print(x);
}

如果你的基类叫做Base ,并且你的函数叫做FooBar()你可以直接使用Base::FooBar()来调用它。

void Base::FooBar()
{
   printf("in Basen");
}

void ChildOfBase::FooBar()
{
  Base::FooBar();
}
链接地址: http://www.djcxy.com/p/9829.html

上一篇: How to call a parent class function from derived class function?

下一篇: How can you combine git add patch