例如,我有这样的课程:
class Base
{
public: void SomeFunc() { std::cout << "la-la-la\n"; }
};
Run Code Online (Sandbox Code Playgroud)
我从中得到了一个新的:
class Child : public Base
{
void SomeFunc()
{
// Call somehow code from base class
std::cout << "Hello from child\n";
}
};
Run Code Online (Sandbox Code Playgroud)
我希望看到:
la-la-la
Hello from child
Run Code Online (Sandbox Code Playgroud)
我可以从派生类调用方法吗?
Pét*_*rök 10
当然:
void SomeFunc()
{
Base::SomeFunc();
std::cout << "Hello from child\n";
}
Run Code Online (Sandbox Code Playgroud)
顺便说一句,因为Base::SomeFunc()
没有声明virtual
,Derived::SomeFunc()
隐藏它在基类而不是覆盖它,从长远来看肯定会导致一些令人讨厌的意外.所以你可能想把你的声明改成
public: virtual void SomeFunc() { ... }
Run Code Online (Sandbox Code Playgroud)
这Derived::SomeFunc()
virtual
也会自动生成,但为了清楚起见,您可能更愿意明确声明.