例如,我有这样的课程:
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(使用前将#替换为@)