为什么不改变指向的对象的值在shared_ptr中没有变化?

时间:2015-08-30 07:28:06

标签: c++ c++11 smart-pointers

使用原始指针时,如果更改了指向对象的值,则指针的值在取消引用时也会发生变化。但是使用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

1 个答案:

答案 0 :(得分:3)

make_shared<int>类似于new int而不是&