使用原始指针时,如果更改了指向对象的值,则指针的值在取消引用时也会发生变化。但是使用shared_ptr时并非如此。为什么会这样?
int i = 3;
shared_ptr<int> q = make_shared<int>(i);
// what i want "int*q = &i;"
i = 5;
cout << *q << endl; //isn't it suppose to print 5
答案 0 :(得分:3)
make_shared<int>
类似于new int
而不是&
。