How to call a parent class function from derived class function?

How do I call the parent function from a derived class using C++? For example, I have a class called parent , and a class called child which is derived from parent. Within each class there is a print function. In the definition of the child's print function I would like to make a call to the parents print function. How would I go about doing this?


I'll take the risk of stating the obvious: You call the function, if it's defined in the base class it's automatically available in the derived class (unless it's private ).

If there is a function with the same signature in the derived class you can disambiguate it by adding the base class's name followed by two colons base_class::foo(...) . You should note that unlike Java and C#, C++ does not have a keyword for "the base class" ( super or base ) since C++ supports multiple inheritance which may lead to ambiguity.

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'
    }
};

Incidentally, you can't derive directly from the same class twice since there will be no way to refer to one of the base classes over the other.

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

Given parent class named Parent and child class named Child ,

You can do something like this:

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/9830.html

上一篇: “编程接口”意味着什么?

下一篇: 如何从派生类函数调用父类函数?