例如,我有这样的类(class):

class Base
{
   public: void SomeFunc() { std::cout << "la-la-la\n"; }
};

我从中推导出一个新的:
class Child : public Base
{
   void SomeFunc()
   {
      // Call somehow code from base class
      std::cout << "Hello from child\n";
   }
};

我想看看:
la-la-la
Hello from child

我可以从派生类调用方法吗?

最佳答案

当然:

void SomeFunc()
{
  Base::SomeFunc();
  std::cout << "Hello from child\n";
}

顺便说一句,由于 Base::SomeFunc() 没有声明为 virtualDerived::SomeFunc() 将它隐藏在基类中而不是覆盖它,从长远来看,这肯定会引起一些令人讨厌的意外。所以你可能想改变你的声明
public: virtual void SomeFunc() { ... }

这也会自动生成 Derived::SomeFunc() virtual,尽管为了清楚起见,您可能更喜欢明确声明它。

关于c++ - 从派生类调用基方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3980011/

10-12 13:32