c++赋值运算符重载

赋值运算符重载


Thing &operator=(const Thing &t){

//判断是否赋值本身

if(*this!=t){

delete name;
name=new Thing[strlen(t.name)+1];
strcpy(name,t.name);

//其他变量也得赋值
}

}

拷贝构造

Thing::Thing(const Thing &t){
delete name;
name=new Thing[strlen(t.name)+1];
strcpy(name,t.name);
//其他变量也得赋值
}
一 用一个已经存在的对象去创建另一个对象
1:
Thing t;
Thing tt(const Thing &t);
2:
Thing *t=new Thing(t);
二 函数的参数是类类型。传值
Thing t;
fun(t);
void fun(Thing t){}
三 函数的返回值是类类型,返回一个对象
Thing fun(){
return t;
}
四 创建对象时如果用赋值运算符,如果左边的对象是没有创建的而右边是已经创建的
Thing t;
Thing tt=t;

Thing t;
Thing tt;
tt=t;

则不会调用拷贝构造 只会调用赋值运算符重载



本文来源:http://blog.youkuaiyun.com/pzw0416/article/details/7389309

如需转载,请注明出处。。


评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值