C++ C++;:std::shared\u ptr<;T>;和std::shared_ptr<;T常数>;?
C++ C++;:std::shared\u ptr<;T>;和std::shared_ptr<;T常数>;?,c++,shared-ptr,C++,Shared Ptr,std::shared_ptr和std::shared_ptr之间有什么区别 你什么时候会使用其中一种呢?shared\u ptr shared_ptr<T> 在发动机罩下存储一个T*,而 shared_ptr<T const> shared\u ptr 在引擎盖下存储一个T常量*。这和指向某个数据的指针和指向某个常量数据的指针之间的区别是一样的 当您只想让共享_ptr表现得像一个常规指针(带有引用计数)时,您可以使用共享_ptr;当您想存储一个指向某个常量数据的
std::shared_ptr
和std::shared_ptr
之间有什么区别
你什么时候会使用其中一种呢?shared\u ptr
shared_ptr<T>
在发动机罩下存储一个T*,而
shared_ptr<T const>
shared\u ptr
在引擎盖下存储一个T常量*。这和指向某个数据的指针和指向某个常量数据的指针之间的区别是一样的
当您只想让共享_ptr表现得像一个常规指针(带有引用计数)时,您可以使用共享_ptr;当您想存储一个指向某个常量数据的ref计数指针(您永远无法修改的数据)时,您可以使用共享_ptr(不能修改指向的数据,但可以修改指针)和常量指针(可以修改指向的数据,但不能修改指针本身)。最后是指向常量数据的常量指针,既不能修改指向的数据,也不能修改指针本身。
是将shared\u ptr
转换为非常量shared\u ptr
。您可以修改int和int
shared\u ptr
是一个shared\u ptr
到一个shared\u ptr
。你不能修改const int
所指向的const int
,因为它是shared\u ptr
。但是你可以修改const
本身(分配给它,调用其他非const方法,等等)shared\u ptr
是将const-shared\u-ptr
转换为非常量const-shared\u-ptr
。您不能修改int
(通过调用shared\u-ptr
或任何非常量方法),但可以修改它指向的reset
int
是将const shared\u ptr
转换为const shared\u ptr
。您不能修改jackconst int
T*
和const T*
之间有什么区别?@MarkGarcia您遗漏了T const*
(这是多余的,但更接近模板参数的形式).指向某些数据的常量指针。
是错误的。它是指向某些常量数据的指针。呜呜!这里太晚了。已编辑。shared_ptr
和shared_ptr
之间有什么区别吗?@kmccoy没有。就像const int
和int-const
之间没有区别一样