类的赋值操作符(“=”)和拷贝构造函数的调用时机

copy构造函数被用来“以同型对象初始化自我对象”,而赋值操作符被用来“从另一个同型对象中拷贝其值到自我对象”。
需要格外注意的是copy构造函数也是构造函数,因此它的调用时机必须是之前的对象并不存在的情况,而赋值操作符正好相反,既然是“从另一个同型对象中拷贝其值到自我对象”,那在调用的时机,就必须同时存在两个已经存在的对象。
举个例子:

class test{};//定义一个类,系统自动生成其copy构造函数和赋值运算

int main()
{
    test t1;
    test t2(t1);//copy构造函数
    t2=t1;//赋值运算符
    test t3=t2;//copy构造函数
}

可见,调用的是copy构造函数还是赋值运算符跟“=”是否出现并没有关系,唯一的准则是对象之前是否存在。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值