我需要派生类调用其新函数,如下所示。我已经尝试了很多不同的变体和关键字的位置。继承并使用派生函数
我使用两种方法创建基类预加载和加载。 PreLoad的目的是加载总是需要加载的东西,而加载用于加载它需要的功能。
class Base
{
public:
Base();
void PreLoad();
virtual void Load();
};
Base::Base() {
PreLoad();
}
void Base::PreLoad() {
Load();
}
class Derived : public Base {
public:
virtual void Load() {
std::cout << "Hia" << std::endl;
}
};
int main()
{
Derived d = Derived();
d.PreLoad();
return 0;
}
要使多态性正常工作,您需要使用引用或指向* base *类的指针。然后,您将引用或指针初始化为引用/指向派生对象的指针。例如。 'Base * base = new Derived;'这实际上是指针在现代C++中很有用的少数情况之一。但是,在“现代”C++中,会使用一个类似['std :: unique_ptr'](http://en.cppreference.com/w/cpp/memory/unique_ptr)的智能指针,就像'std :: unique_ptr base(new Derived);' –
@πάνταῥεῖ这就是为什么我试图描述我的问题... –
我不明白你的意思[按预期工作](http://coliru.stacked-crooked.com/a/f22d7d3fb686cb31)。 –