首页 > 其他分享 >十一: 关于dynamic_cast 与继承

十一: 关于dynamic_cast 与继承

时间:2023-02-04 12:12:19浏览次数:144  
标签:十一 default dynamic public cast Base Data class

 class Base {
    public:
        Base()  = default;
        ~Base() = default;
    };

    class Data :public Base {
    public:
        Data(){}
        ~Data() = default;
      
    };

    std::unique_ptr<Base>  base_ = std::make_unique<Data<T>>()

     //编译报错 dynamic_case 不是多态类型,因为 dynamic_case 需要依赖虚函数表
     //然而 class Base 类中,没有 虚函数, 所以 class Data 中没有产生虚函数表, 只需要 将  ~Base()  =》 virtual  ~Base() 
     Data<T>* pdata = dynamic_cast<Data<T>*> (base_.get());
   



  

标签:十一,default,dynamic,public,cast,Base,Data,class
From: https://www.cnblogs.com/erichome/p/17091251.html

相关文章