从派生类调用基方法

2023-12-09

例如,我有这样的课程:

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

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


Sure:

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

顺便说一句,自从Base::SomeFunc()未声明virtual, Derived::SomeFunc() hides它在基类中而不是压倒性的从长远来看,这肯定会造成一些令人讨厌的意外。所以你可能想将你的声明更改为

public: virtual void SomeFunc() { ... }

这会自动使Derived::SomeFunc() virtual同样,尽管为了清楚起见,您可能更愿意明确声明这一点。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从派生类调用基方法 的相关文章

随机推荐