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