1. 如果base_pointer所指向的对象实际上不是DerivedType类型的对象,则dynamic_pointer_cast会返回一个空指针。 2. 如果base_pointer为一个空智能指针,则dynamic_pointer_cast会返回一个空指针。 3. 使用dynamic_pointer_cast时需要包含头文件<memory>。 下面是一个使用dynamic_pointer_cast的例子: class Base { pub...
本文将详细介绍dynamic_pointer_cast的用法。 第一步:引入头文件 首先,我们需要引入C++标准库中的<memory>头文件。这个头文件包含了智能指针类template,以及对智能指针的操作。 #include <memory> 第二步:创建原始指针 接下来,我们需要创建一个原始指针,该指针指向需要被智能指针管理的对象。 int* raw_ptr = new ...
std::dynamic_pointer_cast细节用法 关于std::dynamic_pointer_cast的使用,只适合具有继承关系的使用,比如 class D:public B { }; 如果,B的指针指向D时,想用D里面的函数,而在B里面没有时,我们就会使用std::dynamic_pointer_cast函数,但是,这只适合shared_ptr,不适合std::unique_ptr,因为c++标准库根本没实现。