相关疑难解决方法(0)

为什么C++拷贝构造函数必须使用const对象?

我明白,当我们定义类的类复制构造函数时,必须作为三个状态的规则.我还注意到复制构造函数的参数通常const如下面的代码所示:

class ABC {
public:
    int a;
    int b;
    ABC(const ABC &other)
    { 
        a = other.a;
        b = other.b;
    }
}
Run Code Online (Sandbox Code Playgroud)

我的问题是如果复制构造函数的参数不是const会发生什么:

class ABC
{
    public:
    int a;
    int b;
    ABC(ABC &other)
    { 
        a = other.a;
        b = other.b;
    }
}
Run Code Online (Sandbox Code Playgroud)

我理解在某些情况下,如果复制构造函数的参数是const,那么第二个实现将失败.此外,如果复制构造函数的参数是const,则要复制的对象在此过程中不会更改其内容.但是,我注意到有些人仍然使用第二个实现而不是第一个实现.是否有任何理由认为第二种实施方式是首选的?

c++ copy-constructor

18
推荐指数
4
解决办法
2万
查看次数

标签 统计

c++ ×1

copy-constructor ×1