小编典典

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

javascript c++

如何使用C ++从派生类调用父函数?例如,我有一个名为的类parent,一个名为的类child是从父类派生的。每个类中都有一个print函数。在定义孩子的打印功能时,我想调用父母的打印功能。我将如何去做呢?


阅读 483

收藏
2020-09-09

共1个答案

小编典典

我冒着明显的危险:调用该函数,如果它在基类中定义,则该函数在派生类中自动可用(除非它是private)。

如果派生类中有一个具有相同签名的函数,则可以通过在基类名称后加上两个冒号来消除歧义base_class::foo(...)。你应该注意到,不像Java和C#,C 并没有对“基础类”(关键字super或base),因为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
};
2020-09-09