移动成员对象的语义

时间:2020-06-25 15:56:19

标签: c++ move-semantics member

所以可以说我们有一个类A,其中包含一个成员,该成员是指向某些资源的指针(a_resource_ptr)。然后,我们有了一个类B,其中包含一个成员,该成员是类A的实例a_instance(不是指向实例的指针,只是类A的值实例)。

在类B的移动构造器/赋值中,我假设会有一行像这样

this->a_instance = other.a_instance

此'='是A类的副本分配运算符还是移动分配运算符。换句话说,在移动构造函数/赋值中构造的B会获得原始a_resource_ptr并失去[other]该资源,还是[this]只是从other.a_instance获得a_resource_ptr内容的副本(假设A的副本构造函数/ assignment可以进行深拷贝)

我想我想要的是第一种情况,因为毕竟这是move构造函数,但是我不知道这是否会正确调用A的move构造函数/赋值。

这真的很罗word,所以如果我不得不做一句话的总结:在实现移动构造器/赋值时,对成员对象的构造器/赋值调用被认为是该成员对象的类或对象的副本构造器/赋值。移动该成员对象类的构造函数/赋值

0 个答案:

没有答案
相关问题