auto_ptr을 NULL 또는 이와 동등한 것으로 설정하는 방법이 있습니까? 예를 들어, 내가 진 노드 객체로 구성된 트리 만드는거야 :auto_ptr을 NULL로 설정하는 방법
auto_ptr<Node> n(new Node);
(*n).set_node(i->second, i->first, NULL, NULL);
이 오류가 발생합니다 : 부모 노드가 아닌 노드에 대해
struct Node {
int weight;
char litteral;
auto_ptr<Node> childL;
auto_ptr<Node> childR;
void set_node(int w, char l, auto_ptr<Node> L, auto_ptr<Node> R){
weight = w;
litteral = l;
childL = L;
childR = R;
}
};
을, 나는이 일을 계획했다 . 그것을 NULL로 설정하는 방법이 있습니까? 아니면 이해할 수있는 또 다른 조치가 있습니까?
감사합니다. 지금부터는 unique_ptr을 사용하겠습니다. set_node에 실제 auto_ptr을 전달하면 childL & chilR에 대한 소유권이 부여됩니까? –
예, 'auto_ptr'을 "복사"하면 "이전"의 auto_ptr이 소유권을 잃고 (null로 재설정 됨) "새로운"auto_ptr이 소유권을 얻습니다. –