Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C++;:std::shared\u ptr<;T>;和std::shared_ptr<;T常数>;?_C++_Shared Ptr - Fatal编程技术网

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
    。但是你可以修改
    shared\u ptr
    本身(分配给它,调用其他非const方法,等等)

  • const-shared\u-ptr
    是将
    const-shared\u-ptr
    转换为非常量
    int
    。您不能修改
    shared\u-ptr
    (通过调用
    reset
    或任何非常量方法),但可以修改它指向的
    int

  • const shared\u ptr
    是将
    const shared\u ptr
    转换为
    const int
    。您不能修改jack


  • T*
    const T*
    之间有什么区别?@MarkGarcia您遗漏了
    T const*
    (这是多余的,但更接近模板参数的形式).
    指向某些数据的常量指针。
    是错误的。它是指向某些常量数据的指针。呜呜!这里太晚了。已编辑。
    shared_ptr
    shared_ptr
    之间有什么区别吗?@kmccoy没有。就像
    const int
    int-const
    之间没有区别一样