std::dynamic

03-24 1442阅读

std::dynamic_pointer_cast 是 C++ 中用于在 std::shared_ptr 智能指针之间进行动态类型转换的函数模板。它位于 头文件中,并与其他类型转换函数(如 static_pointer_cast 和 const_pointer_cast)一起提供了方便且安全的智能指针类型转换操作。

std::dynamic
(图片来源网络,侵删)

std::dynamic_pointer_cast 可以将一个 std::shared_ptr 智能指针从一个派生类类型向另一个派生类类型进行转换,前提是这两个类之间存在继承关系。如果转换成功,将返回一个新的 std::shared_ptr,指向目标类型的对象;如果转换失败,则返回一个空的 std::shared_ptr。

以下是一个示例,展示了如何使用 std::dynamic_pointer_cast 进行动态类型转换:

#include 
#include 
class Base {
public:
    virtual void foo() {
        std::cout 
public:
    void foo() override {
        std::cout 
    std::shared_ptr
        derivedPtr-foo(); // 调用 Derived 类的 foo() 方法
    } else {
        std::cout 
VPS购买请点击我

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

目录[+]