以此作爲一個例子:使用智能指針的好處?
#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