나는 방법을 이해하려고 std::unique_ptr
일을하고 내가 발견 이 문서를. 작성자는 다음 예제에서 시작합니다.
#include <utility> //declarations of unique_ptr
using std::unique_ptr;
// default construction
unique_ptr<int> up; //creates an empty object
// initialize with an argument
unique_ptr<int> uptr (new int(3));
double *pd= new double;
unique_ptr<double> uptr2 (pd);
// overloaded * and ->
*uptr2 = 23.5;
unique_ptr<std::string> ups (new std::string("hello"));
int len=ups->size();
나에게 헷갈리는 것은이 줄에서
unique_ptr<int> uptr (new int(3));
정수를 인수로 사용합니다 (반올림 괄호 사이).
unique_ptr<double> uptr2 (pd);
포인터를 인수로 사용했습니다. 차이가 있습니까?
나에게도 명확하지 않은 것은 이러한 방식으로 선언 된 포인터가 "정상적인"방식으로 선언 된 포인터와 어떻게 다른지입니다.
new int(3)
new 에 대한 포인터int
처럼 new에 대한 포인터를 반환합니다 .pd
double