std::dynamic
std::dynamic_pointer_cast 是 C++ 中用于在 std::shared_ptr 智能指针之间进行动态类型转换的函数模板。它位于 头文件中,并与其他类型转换函数(如 static_pointer_cast 和 const_pointer_cast)一起提供了方便且安全的智能指针类型转换操作。
(图片来源网络,侵删)
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
文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。