std::static_pointer_cast, std::dynamic_pointer_cast, std::const_pointer_cast
来自cppreference.com
< cpp | memory | shared ptr
该页由英文版wiki使用Google Translate机器翻译而来。
该翻译可能存在错误或用词不当。鼠标停留在文本上可以看到原版本。你可以帮助我们修正错误或改进翻译。参见说明请点击这里. |
template< class T, class U > shared_ptr<T> static_pointer_cast( const shared_ptr<U>& r ); |
(1) | (C++11 起) |
template< class T, class U > shared_ptr<T> dynamic_pointer_cast( const shared_ptr<U>& r ); |
(2) | (C++11 起) |
template< class T, class U > shared_ptr<T> const_pointer_cast( const shared_ptr<U>& r ); |
(3) | (C++11 起) |
std::shared_ptr铸造
r
的管理对象类型的管理对象类型将返回一个新的实例。这两个智能指针共享所有权的管理对象.原文:
Will return a new instance of std::shared_ptr with a casted managed object type from the
r
's managed object type. Both smart pointers will share the ownership of the managed object.将获得由呼叫(在各自的顺序排列):std::shared_ptr的管理对象
原文:
The resulting std::shared_ptr's managed object will be obtained by calling (in respective order):
1)
static_cast<T*>(r.get())
.2)
dynamic_cast<T*>(r.get())
(dynamic_cast
的结果,如果是0,则返回的shared_ptr的将是空的).原文:
dynamic_cast<T*>(r.get())
(If the result of the dynamic_cast
is 0, the returned shared_ptr will be empty).3)
const_cast<T*>(r.get())
.在任何情况下,如果参数
r
是一个空std::shared_ptr的结果将是一个新的空std::shared_ptr.原文:
In any case, if the parameter
r
is an empty std::shared_ptr the result will be a new empty std::shared_ptr.[编辑] 参数
r | - | 指针转换
|