class Product
{
...
}
class Perishable : public : Product
{
public:
int getday();
}
int main()
{
Product *temp;
//due to some coding
//temp could point to either Perishable object or Product object that is determine //during runtime
cout<< ((Perishable*)temp)->getday() ;// is there other way to achieve this typecasting seems dangerous
這段代碼的問題是,如果臨時指向一個Product對象,temp-> getday()將是無效的,我不知道如何防止這種情況發生。如果由於某些情況,我只允許getday()在易腐爛但不在產品中,我如何檢查temp是否指向易腐物品或產品對象?C++基本多態性
一些幫助,將不勝感激/
}
這似乎打敗了多態性的目的。或者我誤解了你的問題。 – grep 2012-02-20 05:24:09
我想你是在問「downcasting」:http://en.wikipedia.org/wiki/Downcast? – reuben 2012-02-20 05:26:33