C++ dynamic_cast用法

#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】免费获取数百本计算机经典书籍

    C++ dynamic_cast用法

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/94701

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月10日 上午2:45
下一篇 2023年2月10日 上午2:45

相关推荐