隐式移动构造函数何时不够用?
我是否应该像析构函数和复制构造函数一样处理它,只有在我自己管理内存时才通常需要使用它?
在这种(非常牵强的)情况下,隐式移动构造函数是否足够好:
class A
{
private:
B b;
std::string name;
public:
A();
std::string getName() const {
return name;
}
B getB() const {
return b;
}
};
class B
{
private:
std::vector list;
public:
B();
std::vector getList() const {
return list;
}
};
int
成员,那么当对象被移动时,int
成员应该重置为0
。 - Mooing DuckA
的对象的隐式移动构造函数将调用name
和b
的移动构造函数(它们也是隐式的,并调用list
的移动构造函数)。一切都已经正确移动,无需进行任何操作。如果A
具有自己的堆管理或不可移动成员(在这种情况下,您可能需要单独处理这些成员对象),则需要编写自己的移动构造函数。 - Pixelchemist