我如何调用派生类的函数,而不是类型转换?从基类调用派生类C++的功能
基类型:
class Fruit{
public:
virtual void show() {cout « "its a fruct" « endl;}
};
子:
class Banana : public Fruit{
public:
void show() { cout « "it's yellow banana" « endl; }
};
阵列所得出的指针
class Basket
{
Fruit *fructs_;
//...
public:
void show();
//...
};
void Basket:: show(){
for(int i=0; i< index_; i++)
(fructs_+i)->show(); // need call Banana::show here
}
'香蕉' 不是 'Fruct' (fructs_ + i)基底 - >香蕉::秀();它将在相反的情况下工作(从香蕉指针调用Fruct方法) – punksta
由于它是虚函数,它不会自动调用派生类吗? –
@NeilKirk看看fructs_的类型。它的基类型指针。 – punksta