如何使用C ++从派生类调用父函数?例如,我有一个名为的类parent,一个名为的类child是从父类派生的。每个类中都有一个print函数。在定义孩子的打印功能时,我想调用父母的打印功能。我将如何去做呢?
parent
child
我冒着明显的危险:调用该函数,如果它在基类中定义,则该函数在派生类中自动可用(除非它是private)。
如果派生类中有一个具有相同签名的函数,则可以通过在基类名称后加上两个冒号来消除歧义base_class::foo(...)。你应该注意到,不像Java和C#,C 并没有对“基础类”(关键字super或base),因为C 支持多重继承,这可能导致歧义。
base_class::foo(...)
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 };