我有一个 std::unique_ptr<T>
对象和一个库函数,该函数以 T&
作为参数。这个函数会改变 T
对象的数据。
应该如何更好地将 std::unique_ptr<T>
传递给该函数?上面的代码是正确的吗?是否有更好的方法?
#include <iostream>
#include <string>
#include <memory>
class Test {
public:
std::string message = "Hi";
};
void doSomething(Test& item)
{
item.message = "Bye";
}
int main()
{
std::unique_ptr<Test> unique = std::unique_ptr<Test>(new Test());
std::cout << unique->message << " John." << std::endl;
doSomething(*unique.get());
std::cout << unique->message << " John." << std::endl;
}