課程
/后端開發(fā)
/C++
/C++遠(yuǎn)征之多態(tài)篇
我在cv6.0編譯不能通過???
2018-10-16
源自:C++遠(yuǎn)征之多態(tài)篇 4-4
正在回答
#include<cstdio> #include<cstring> #include<iostream> #include<typeinfo> using?namespace?std; class?Movable{ public: ????virtual?void?mmove()?=?0; }; class?Bus:public?Movable { public: ????~Bus(){} ????virtual?void?mmove(){ ????????cout?<<?"Bus?--?move"?<<?endl; ????} ????void?carry(){ ????????cout?<<?"Bus?--?carry"?<<?endl; ????} }; class?Tank:public?Movable { public: ????~Tank(){} ????virtual?void?mmove(){ ????????cout?<<?"Tank?--?move"?<<?endl; ????} ????void?shot(){ ????????cout?<<?"Tank?--?shot"?<<?endl; ????} }; void?dosomething(Movable?*obj){ ????obj->mmove(); ??//??cout?<<?typeid(*obj).name()?<<?endl; ????if(?typeid(*obj)?==?typeid(Bus)?){ ????????Bus?*bus?=?dynamic_cast<Bus*>(obj); ????????bus->carry(); ????}else?if(?typeid(*obj)?==?typeid(Tank)?){ ????????Tank?*tank?=?dynamic_cast<Tank*>(obj); ????????tank->shot(); ????} } int?main(){ ????Bus?*bus?=?new?Bus(); ????Tank?*tank?=?new?Tank(); ????dosomething(bus); ????dosomething(tank); ????delete?bus; ????delete?tank; ????bus?=?NULL; ????tank?=?NULL; ????return?0; }
可能是少了頭文件#include<typeinfo>,我用的code::blocks也要自己加頭文件。
慕設(shè)計(jì)2525588 提問者
NodiSe 回復(fù) 慕設(shè)計(jì)2525588 提問者
慕設(shè)計(jì)2525588 提問者 回復(fù) NodiSe
舉報(bào)
本教程將帶領(lǐng)大家體會(huì)面向?qū)ο笕筇匦灾械亩鄳B(tài)特性
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號(hào)-11 京公網(wǎng)安備11010802030151號(hào)
購課補(bǔ)貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動(dòng)學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號(hào)
2018-10-17
2018-10-17
可能是少了頭文件#include<typeinfo>,我用的code::blocks也要自己加頭文件。