【发布时间】:2016-09-14 08:29:23
【问题描述】:
看下面的例子,我使用了一个唯一指针和一个指向a的原始指针,我的问题是,为什么原始指针可以工作,而唯一指针却不行?如果我想使用unique_ptr 或shared_ptr 将字符串a 修改为引用,我该怎么办?
示例程序:
#include <iostream>
#include <string>
#include <memory>
int main()
{
using namespace std;
string a = "aaa";
auto ptr = std::make_unique<string>(a);
auto ptr2 = &a;
cout << "before, a: " << a << endl;
*ptr += "bbb";
cout << "After, a: " << a << endl;
*ptr2 += "ccc";
cout << "after 2, a: " << a << endl;
}
输出:
before, a: aaa
After, a: aaa
after 2, a: aaaccc
【问题讨论】:
标签: c++ pointers smart-pointers