有没有办法在C++中调用类外的基函数?

use*_*ser 15 c++ oop

这个问题类似,但是关于从类中调用函数:如果我重写它,我可以调用基类的虚函数吗?

在这种情况下,您将指定Base::function()而不是function(),将调用重写的定义.

但是有没有办法在课外做到这一点?我的类没有定义复制构造函数,所以我无法弄清楚如何作为基类进行转换:

Base( derived_object ).function()
Run Code Online (Sandbox Code Playgroud)

是适当的事情在这里施展& derived_object作为Base*,然后调用->function()

感谢您的见解.

Eri*_*ric 22

尝试 derived_object.Base::function();

  • @Oliver class :: function()是成员函数的"全名".如果没有为你调用的函数指定类,那么它将是'default'(在你的情况下派生一个). (5认同)

Omn*_*ous 10

我相信语法:

derived_ptr->Base::function();
Run Code Online (Sandbox Code Playgroud)

工作得很好.虽然我真的质疑你为什么要在一个不属于你班级的功能中这样做.特别是如果function恰好是虚拟功能.

这是一个值得怀疑的想法的原因是你正在做任何使用该符号的东西取决于你的类的继承层次结构.此外,由于某种原因,通常会覆盖函数.而且你通过使用这种语法来解决这个问题.