我的问题是我是前端开发人员,但我需要对C++项目进行更改。
所以原来的情况是这样的:
std::vector<myObject*> myArray;
...
myArray.push_back(new myObject);
...
myArray.back();
我如何尝试改变它:
std::vector<std::unique_ptr<myObject>> myArray;
...
myArray.push_back(std::unique_ptr<myObject> (new myObject));
...
myArray.back().get(); // this place looks not good in my opinion :)
很多函数应该得到myObject*
。而且我不知道如果我改变函数的参数会有多少变化。
请问您如何在这种情况下正确获取指针?
myArray.back()->someFunctionInMyObject();
。 - Some programmer dudestd::unique_ptr
,所以在这种情况下它非常便宜。我认为这与此无关。 - Slavastd::unique_ptr
,所以如果push_back()
不能移动它,代码将无法编译。 - Slava