說=運營商,我有一個類:移動構造函數和共享指針
class GameObject ///header file
{
....
std::shared_ptr<Transform> transform;
}
///cpp file
//Copy Ctor
GameObject::GameObject(const GameObject& rhs)
:transform(rhs.transform)
{}
//Move CTor
GameObject::GameObject(GameObject&& rhs)
:transform(std::move(rhs.transform))
{}
- 這是正確的,以創建具有shared_ptr的成員變量的類的移動構造函數?或者我需要撥打
rhs.transform.reset()
在移動後取消分配rhs? - 複製構造函數如何?
- 大概,複製和移動任務看起來與ctors基本相同,最後只有
return *this
?
你在這裏的拷貝構造函數只是一個淺拷貝,它可能是也可能不是你想要的。 – dwcanillas
@dwcanillas沒有發生淺拷貝。 – 0x499602D2
@ 0x499602D2我們不是在看構造函數9嗎? http://en.cppreference.com/w/cpp/memory/shared_ptr/shared_ptr – dwcanillas