我如何調用派生類的函數,而不是類型轉換?從基類調用派生類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