如何进行智能指针的动态转换
1、首先创建一个基类和一个子类,注意定义了Print函数用于测试,并且是虚函数
2、定义存储指向子类的基类智能指针变量,然后调用dynam坡纠课柩ic_pointer_cast转换为类型为子类的智能指针变量
3、编译运行输出的打印信息如下,能够正常调用子类的Print函数
4、定义存储指向子类的子类智能指针变量,然后调用dynamic_pointer_cast转换为类型为基类的智能指针变量
5、调用Print函数,输出的打印信息看,也是正确调用子类的Print函数,酋篚靶高需要Print为虚函数,如果Print不是虚函数,那么调用将会是基类的Print函数
6、定义存储基类的智能指针变量,然后转换为类型为子类的智能指针变量
7、最后从运行打印的结果看,转换后的智能指针为nullptr, 说明本身为基类对象就不能动态转换为子类对象
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
阅读量:89
阅读量:84
阅读量:75
阅读量:33
阅读量:95