一个基本操作符“=”问题

stonechina 2001-05-24 10:31:00
MyClass instance1,instance2(...);
instance1=instance2;

operator=起了如何执行的?
假如我MyClass中有定义若干个指针变量,这些变量是否有指向了
...全文
71 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
vale 2001-05-24
  • 打赏
  • 举报
回复
如果有指针成员变量需要深拷贝,应该重载=
stonechina 2001-05-24
  • 打赏
  • 举报
回复
但未重载=,在SunOS5.6的CC编译器下能执行,结果就好象Member-by-Member Copy
rusteel 2001-05-24
  • 打赏
  • 举报
回复
你需要重载=操作符
ringphone 2001-05-24
  • 打赏
  • 举报
回复
没有重载oprator =的话就是按位COPY,如果instance1有分配了内存的指针的话,那么那块内存就会丢失造成内存泄露。所以如果有指针,一定要重载oprator =。
阿发伯 2001-05-24
  • 打赏
  • 举报
回复
MyClass instance1,instance2(...);
instance1=instance2;
确实是完完全全的Copy,包括指针。operator=的目的是按设计要求赋值,如类中定义3个数据,只复制其中1-2个而已。
ydogg 2001-05-24
  • 打赏
  • 举报
回复
有指针的话就不行了。
stonechina 2001-05-24
  • 打赏
  • 举报
回复
2:vale(浅谷)

何谓深拷贝?显试分配内存,再拷贝?

70,035

社区成员

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

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