從我通過閱讀大部分在這裏查詢時發現的問題來看,在查找唯一指針時彈出,我認爲它應該提供Builder模式描述的行爲。這是unique_ptr的正確用法嗎?
我希望Builder的任何實例(或其子類,因爲它沒有實現任何修改正在構建的對象的過程)擁有正在構建的對象,直到Close返回指向調用者的唯一指針,指出來電者擁有所有權。
Builder.h
template <class type> class Builder
{
public:
~Builder();
unique_ptr<type> Close();
protected:
Builder();
unique_ptr<type> _uptr;
};
Builder.cpp
template<class type> Builder<type>::Builder()
{
uptr = make_unique<type>();
}
template<class type> Builder<type>::~Builder()
{}
template<class type> unique_ptr<type> Builder<type>::Close()
{
return uptr;
}
我是否懂得按值傳遞的唯一指針的語義?
(包括和爲了簡潔省略/易讀性命名空間)
謝謝!這就說得通了。我有一個暗示,我沒有適當地轉移。 – ophilbinbriscoe