Kin*_*ing 1 c++ copy-constructor
有一个A类,有2个对象A1和A2.
现在要将A2的成员值分配给A1,我可以使用简单的A1 = A2,或者使用复制构造函数,如: -
A (A &A2)
{
this.m = A2.m;
this.n = A2.n;
}
Run Code Online (Sandbox Code Playgroud)
所以,我想知道哪一个更好,哪个选项适合,或者它们之间真的有什么区别?
Jos*_*eld 11
首先,你需要这样做this->m,因为它this是一个指针.
其次,复制构造函数通常应该采用const A&.
第三,如果需要实现复制构造函数,则可能还需要实现赋值运算符.在这种情况下,我不确定你是否真的需要实现(只是默认它们).
第四,复制构造函数和赋值运算符用于不同的情况:
A A1 = A2; // Copy constructor
A1 = A2; // Assignment
Run Code Online (Sandbox Code Playgroud)
你应该提供两者.
第五,您可以使用成员初始化列表更好地编写构造函数:
A(const A& A2)
: m(A2.m), n(A2.n)
{ }
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
133 次 |
| 最近记录: |