当使用原始指针时,如果您改变了所指向对象的值,则在解引用时指针的值也会改变。但是,当使用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
make_shared<int>
类似于new int
而不是&
。