亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

void flyMatch(Flyable* f1, Flyable * f2)

為什么形參Flyable* f1可以調用plane的指針, 是應為plane是Flyable的子類么??

正在回答

1 回答

/**
這就是所謂的多態啊
*/

class?Father{
public:
????virtual?void?func(){std::cout<<"father"<<std::endl;}
};

class?Child:public?Father{
public:
????//?override?Father's?function?func()
????void?func(){std::cout<<"child"<<std::endl;}
};

//?usage
Father?*f?=?new?Father();
f->func();?//?output?"father"
Child?c?=?new?Child();
c->func();?//?output?"child"

Father?*pf?=?NULL;
Father?*pc?=?NULL;

pf?=?c;?//?pointer?of?Father?type?points?to?object?of?Child?which?is?Father's?subclass
pf->func();?//?output?"child",?because?the?real?type?of?the?object?is?Child.?(polymorphic)

//pc?=?f;?//?this?is?WRONG!!?child?pointer?can?not?points?to?father?object
pc?=?dynamic_cast<Child*>(pf);?//?right


0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
C++遠征之多態篇
  • 參與學習       66223    人
  • 解答問題       334    個

本教程將帶領大家體會面向對象三大特性中的多態特性

進入課程

void flyMatch(Flyable* f1, Flyable * f2)

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號