从派生类调用重载函数

Posted

技术标签:

【中文标题】从派生类调用重载函数【英文标题】:Calling an overloaded function from a derived class [duplicate] 【发布时间】:2015-12-30 21:17:53 【问题描述】:

这里是 C++ 新手。有没有办法从派生类中具有相同签名的相同函数名调用基类中的重载函数?在 Smalltalk 中,我可以使用“super”关键字。有没有 C++ 等价物?

class MyBaseClass 
  void initialize()  doSomething(); 
;

class MyDerivedClass : public MyBaseClass 
  void initialize() 
      super initialize(); // first, call MyBaseClass::initialize()
      doLocalInitialize(); // now initialize non-inherited members

谢谢, 规范

【问题讨论】:

您的评论中已经包含它:MyBaseClass::initialize(); 您可能还想执行 virtual 功能 - 不是必需的,但对我来说就是这样。 【参考方案1】:

您在评论中确实说了正确的语法:)

class MyBaseClass 
    void initialize()  doSomething(); 
;

class MyDerivedClass : public MyBaseClass 
void initialize() 
    MyBaseClass::initialize(); // first, call MyBaseClass::initialize()
    doLocalInitialize(); // now initialize non-inherited members

【讨论】:

老兄,就这么简单?感谢您的回复。

以上是关于从派生类调用重载函数的主要内容,如果未能解决你的问题,请参考以下文章

如何将基参数从重载的构造函数传递到派生类[重复]

在C++中,啥是运算符重载?啥是虚函数?

在派生类中重载基类函数

15. 继承重载覆盖隐藏

派生类中的重载构造函数

为啥派生类中的重写函数会隐藏基类的其他重载?