이러한 코드가 있습니다.함수의 auto_ptr 반환 값
MyClass MyClass::get_information (const some_datastructure *record)
{
auto_ptr<MyClass > variable (new MyClass());
variable ->set_article_id(record->article_id);
return *variable.get();
}
본인은 MyClass 유형의 개체 (사본?)를 반환한다는 것을 알고 있습니다. 초기에, 나에게 이해가되지 않는 auto_ptr 객체를 반환하고 있다고 생각 했었습니다. (?) 범위를 벗어날 때 auto_ptr 객체가 파괴되었다고 생각했기 때문에 생각했습니다.
어쨌든 위의 코드가 맞습니까? 함수가 반환 될 때/후에 객체 *variable.get()
이 존재합니까?
일반적으로 나는'auto_ptr'을 사용하는 코드가 너무 취약하여 "ok"라고 생각하지 않을 것입니다. 하지만 너무 열정이있는 수업은 싫어. 'std :: unique_ptr'을 사용할 수 있습니까? 그렇다면, 걷지 말고 실행하십시오. – Yakk