例如,我有这样的类(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()
没有声明为 virtual
,Derived::SomeFunc()
将它隐藏在基类中而不是覆盖它,从长远来看,这肯定会引起一些令人讨厌的意外。所以你可能想改变你的声明public: virtual void SomeFunc() { ... }
这也会自动生成
Derived::SomeFunc()
virtual
,尽管为了清楚起见,您可能更喜欢明确声明它。关于c++ - 从派生类调用基方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3980011/