gpt4 book ai didi

c++ - 哪个更喜欢,复制构造函数或对象赋值?

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:15:27 25 4
gpt4 key购买 nike

有一个包含 2 个对象 A1 和 A2 的类 A。

现在要将 A2 的成员值分配给 A1,我可以简单地使用 A1 = A2,或者使用复制构造函数来代替:-

A (A &A2)
{
this.m = A2.m;
this.n = A2.n;
}

所以,我想知道哪个更好,哪个选项适合,或者它们之间真的有什么区别吗?

最佳答案

首先,您需要执行 this->m,因为 this 是一个指针。

其次,复制构造函数通常应该采用const A&

第三,如果你需要实现复制构造函数,你可能还需要实现赋值运算符。在这种情况下,我不确定您是否真的需要实现其中任何一个(只是默认它们)。

第四,拷贝构造函数和赋值运算符的使用场景不同:

A A1 = A2; // Copy constructor
A1 = A2; // Assignment

您应该同时提供两者。

第五,你最好用一个成员初始化列表来编写你的构造函数:

A(const A& A2) 
: m(A2.m), n(A2.n)
{ }

关于c++ - 哪个更喜欢,复制构造函数或对象赋值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24830366/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com