求教复制构造函数和operator=有什么区别,各在什么时候用

julyclyde 2002-10-12 01:08:08
求教
...全文
93 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
lufly2000 2002-10-18
  • 打赏
  • 举报
回复
关注中。。。
sandrowjw 2002-10-17
  • 打赏
  • 举报
回复
实际上可以和数组赋值类比,可以对数组用 ={litheral1,litheral2......}这种形式的地方,就是使用拷贝构造函数的地方,其他用到=的地方就是用了重载。
sandrowjw 2002-10-17
  • 打赏
  • 举报
回复
实际上可以和数组赋值类比,可以对数组用 ={litheral1,litheral2......}这种形式的地方,就是使用拷贝构造函数的地方,其他用到=的地方就是用了重载。
陈硕 2002-10-13
  • 打赏
  • 举报
回复
请仔细看看书。

class Person { /* ... */ };

Person person_a; // default ctor
Person person_b(person_a); // copy ctor
Person person_c = person_a; // copy ctor
Person person_d;
person_d = person_a; // operator=
qhgary 2002-10-13
  • 打赏
  • 举报
回复
付值的时候调用operator=?那就不调用拷贝构造函数了?如果没有operator=,那是不是就调用拷贝构造函数呢?
xiaosheng80 2002-10-13
  • 打赏
  • 举报
回复
侯捷的effective c++上讲得很清楚,拷贝构造函数在初始化的时候被调用,而operator = 在赋值时被调用。
xray1111 2002-10-12
  • 打赏
  • 举报
回复
在没有重载=运算符之前,如果相同类型变量之间赋值,将调用拷贝构造函数。如果没有拷贝构造函数,将调用缺省拷贝构造函数,即,将成员变量简单复制。
重载了=后,调用重载函数赋值。
重载=运算符可以用于不同类型变量间的赋值操作。
sandrowjw 2002-10-12
  • 打赏
  • 举报
回复
拷贝构造函数在第一次初始化对象的时候用,其他时候用=重载。
maninsea 2002-10-12
  • 打赏
  • 举报
回复
拷贝构造函数使用在用已存在的对象产生新对象的地方,包括
1,OBJ A;
OBJ B=A;
2, 对象作为函数参数,在形实参结合时
3,函数返回对象
而 operator= 仅在 = 两边对象都已存在的地方
如,
OBJ A, B;
A = B;
xyj53 2002-10-12
  • 打赏
  • 举报
回复
还有一点,
operator=是按内存中的内容按bit逐位复制一个新的完全相同的对象;新旧对象
占用相同的内存。但这两个对象撤消时同样的内存要释放两次;

copy constructor解决内存释放问题,不按bit逐位复制。
marconi 2002-10-12
  • 打赏
  • 举报
回复
copy constructor是要构造一个新的对象,这个对象先前不存在,
operator= 是把一个已经存在的对象变成另一个对象。
zhdleo 2002-10-12
  • 打赏
  • 举报
回复
我记得Effective 2/e上说:
两者的情况有一点点不同,因为程序中要是有 传值的动作 就会 调用复制构造函数。

还有就是我的理解:复制构造函数可以有多个,=重载只有一个。

理解的不深,见笑了。
coppermine 2002-10-12
  • 打赏
  • 举报
回复
copy constructor: 开始只存在一个对象,然后以该对象为源对象构造出一个新的对象。

例如已存在对象 Type A;
Type B=A; //copy constructor was called.

assignment operator = : 存在两个对象,用一个对象的内容设置另一个对象。

例如Type A,B;
//一些关于B的操作
...
A = B; assignment operator = was called.
52cgi 2002-10-12
  • 打赏
  • 举报
回复
http://www.csdn.net/Expert/TopicView1.asp?id=1089527

帮帮忙,谢谢

69,370

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧