社区
C语言
帖子详情
求教复制构造函数和operator=有什么区别,各在什么时候用
julyclyde
2002-10-12 01:08:08
求教
...全文
128
14
打赏
收藏
求教复制构造函数和operator=有什么区别,各在什么时候用
求教
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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
帮帮忙,谢谢
析构函数、
复制
构造函数
,
operator
=以及深拷贝浅拷贝问题
本文详细介绍了C++中三个重要的特殊函数:析构函数、
复制
构造函数
和
operator
=的操作及应用场景。尤其针对包含指针作为成员变量的情况,讨论了浅拷贝与深拷贝的
区别
,并提供了具体的代码示例。
论C++中
复制
构造函数
与
operator
=
本文通过实验探讨了
复制
构造函数
与重载=运算符的
区别
,总结了两者在不同场景下的调用规律,帮助读者理解C++中对象
复制
与赋值的过程。
复制
构造函数
和
operator
= 的
区别
本文详细介绍了C++中
复制
构造函数
与赋值操作符(
operator
=)的
区别
及使用场景,并通过具体代码示例展示了两种操作的不同调用时机。
C++的
构造函数
,
复制
构造函数
和
operator
=
本文详细解析了C++中
构造函数
、
复制
构造函数
及
operator
=的功能与使用场景。通过实例展示了
构造函数
的不同调用方式,解释了
复制
构造函数
的工作原理,并区分了
operator
=与
复制
构造函数
的
区别
。
C++ 类的
复制
构造函数
和 赋值
构造函数
本文通过一个C++示例介绍了
复制
构造函数
与赋值操作符的使用
区别
,展示了如何实现这两个函数,并解释了它们在对象初始化和赋值过程中的作用。
C语言
70,038
社区成员
243,247
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章