Tôi có một lớp có phương thức setter lấy một đối số unique_ptr. Đó unique_ptr được lưu như là một thành viên lớp.Làm thế nào để tiêu diệt một con trỏ thông minh sớm
class TestClass {
std::unique_ptr<Tester> sp;
void setTester_Way1(std::unique_ptr<Tester> te) {
auto deleter=std::move(sp);
sp=std::move(te);
}
void setTester_Way2(std::unique_ptr<Tester> te) {
sp=std::move(te);
}
};
Cách nào là đúng để đặt con trỏ thông minh? Way2 có bị rò rỉ con trỏ ban đầu của sp không?
Chỉ có một cách để rò rỉ một 'unique_ptr': hàm thành viên' release() ' – emlai
Tôi nghĩ câu trả lời này giải thích mọi thứ http://stackoverflow.com/questions/8114276/how-do-i-pass-a -unique-ptr-argument-to-a-constructor-or-a-function – vim
@zenith là một thách thức? – Yakk