以此作为一个例子:使用智能指针的好处?
#include <memory>
#include <iostream>
int add(int a, int b) {
return a+b;
}
std::unique_ptr<int> addp(int a, int b) {
std::unique_ptr<int> ip(new int(a + b));
return ip;
}
int main(int argc, char const* argv[])
{
std::cout << add(3, 5) << std::endl;
std::cout << *(addp(3, 5)) << std::endl;
return 0;
}
不函数ADDP得到任何改善性能自动,或换句话说,不它 避免数据的拷贝在所有?我怀疑结果a+b
是 得到了堆栈,然后以任何方式复制到堆。
在这种情况下,来自'new'的内存分配可能会比根本不使用指针更糟糕。也就是说,使用'unique_ptr'比使用'new'和原始指针更安全,维护更少。 – YoungJohn