gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 12:31:10 30 4
gpt4 key购买 nike

如何使用 C++ 从派生类调用父函数?例如,我有一个名为 parent 的类,还有一个名为 child 的类,它派生自 parent。之内每个类都有一个 print 函数。在 child 的打印功能的定义中,我想调用 parent 的打印功能。我该怎么做呢?

最佳答案

我冒着风险陈述显而易见的事实:您调用该函数,如果它是在基类中定义的,则它在派生类中自动可用(除非它是 private)。

如果派生类中有一个具有相同签名的函数,您可以通过添加基类的名称后跟两个冒号 base_class::foo(...) 来消除歧义。您应该注意到,与 Java 和 C# 不同,C++ 没有具有“基类”关键字(superbase),因为 C++ 支持multiple inheritance这可能会导致歧义。

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

关于c++ - 如何从派生类函数调用父类函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58627047/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com