#include <iostream> #include <string> using namespace std;
class CPerson {
public: CPerson(){} ~CPerson(){} virtual void Walk(){cout << "CPerson Walk" << endl;} };
class CManager: public CPerson { public: CManager(){} ~CManager(){};
virtual void Walk() {cout << "CManager Walk" << endl;} virtual void SendCommand(){cout << "CManager Send Command" << endl;} }; void main() {
CPerson *person; CManager *manager; person = new CManager(); person->Walk();
manager = static_cast<CManager *>(person); //使用dynamic_cast,OK,否则不能通过编译,如果转换失败,则返回NULL
if (manager) { manager->SendCommand(); manager->Walk(); } else { cout << "转换失败" << endl;
} /// manager = new CPerson; //注意这里报错 int wait; cin >> wait; }
原文链接: https://www.cnblogs.com/ganquanfu2008/p/3174317.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/94701
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!