移动拷贝构造函数和拷贝构造函数 重定义了

来源:8-16 深拷贝浅拷贝及move语义的优化

weixin_慕仔7197815

2023-12-20

图片描述这是什么原因导致的

写回答

1回答

quickzhao

2023-12-21

你好,同学。请尽量不要这样提问。如果你要针对代码提问,最好给全一点代码,请尽量不要简单的截图。这样很难分析你的问题。另,你的代码中移动构造逻辑是有些问题的,移动构造直接让渡other里数据掌控权,请仔细对照课程中的代码。

0
2
quickzhao
回复
weixin_慕仔7197815
你说的逻辑是针对移动赋值操作的,那样确实是对的。但这里是移动构造函数。在移动构造函数中,由于新创建的对象尚未持有任何资源,因此不需要释放任何资源。只需接管被移动对象的资源,并确保被移动的对象不再指向这些资源。这样做可以防止资源被重复释放。当然了,实事上对于other.m_data是否为nullptr是一个问题,通常按照标准,其实other.m_data为nullptr的情况也是OK的。
2023-12-21
共2条回复

重学C++ ,重构你的C++知识体系

一部大片,一段历史,构建C++知识框架的同时重塑你的编程思维

3884 学习 · 1103 问题

查看课程