Rim*_*oun 1 c++ pointers shared-libraries shared-ptr
使用Normal指针,它很简单:
int* p = new int;
int* x = new int;
p=x;
Run Code Online (Sandbox Code Playgroud)
但是有了共享,有:swap,reset等等
std::shared_ptr<int> x = NULL;
std::shared_ptr<int> y = NULL;
Run Code Online (Sandbox Code Playgroud)
我知道重置用于"新"
x.reset(new int(5));
Run Code Online (Sandbox Code Playgroud)
如果我希望x和y都指向这个新的整数5,我是否使用reset或swap或=?我真的很困惑.
y = x;
y.swap(x);
y.reset(x);
Run Code Online (Sandbox Code Playgroud)
有人可以解释一下吗?
谢谢.
你应该使用赋值运算符
y=x;
Run Code Online (Sandbox Code Playgroud)
std::shared_ptr::reset()
期望原始指针作为参数
std::shared_ptr::swap()
交换shared_ptrs的所有权而不改变其中std::shared_ptr::use_cout()
任何一个.