【发布时间】:2020-12-17 07:20:28
【问题描述】:
在代码中:
accounts.push_back(make_unique<Checking_Account>("James",1000));
我知道这是一个未命名的临时 Checking_Account 对象,它会移动到一个向量,但“移动”是如何工作的?我假设Checking_Account 类没有“移动”构造函数。 push_back 方法会调用复制构造函数,但make_unique 是唯一指针,因此不允许复制或赋值。
临时的Checking_Account对象是R值引用会调用一个移动构造函数,但是如果我没有在任何类中定义一个移动构造函数,代码仍然可以正常运行。在我的理解中,可能已经在智能指针类中定义了移动构造函数,或者编译器会复制 elison,即编译器会为我们执行移动构造函数,但我们不会看到这个?我不确定哪个是正确的。
【问题讨论】:
-
如果您可以格式化您的问题、您的代码并为您使用的编程语言添加标签,那将会很有帮助。