小编rd1*_*857的帖子

为什么C++中复制构造函数不需要考虑半赋值

我读过有关避免复制赋值运算符进行半赋值的内容(它在复制项目时引发一些异常,因此赋值的目标达到新旧值混合的状态)。下面的代码提供了解决方案

Matrix& Matrix::operator=(const Matrix& m)
{
    Matrix tmp{m};
    swap(tmp, *this);  // only be called when copy succeeds
    return *this;
}
Run Code Online (Sandbox Code Playgroud)

但它首先调用自定义的复制构造函数。为什么复制构造函数不需要像复制赋值运算符那样检查半赋值?

c++ oop

3
推荐指数
1
解决办法
113
查看次数

标签 统计

c++ ×1

oop ×1