复制拷贝函数

yixiayizi 2009-10-20 12:36:02

class Query {
public:
//其他的代码
Query( const Query & c ) : q( c.q ) , use( c.use ) { ++ *use ; } // 这样赋值可以吗?object c 可以访问private成员q和use吗?
//其他的代码
private:
T * q ;
int * use ;
} ;
...全文
96 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
qiutuanzhun 2009-10-20
  • 打赏
  • 举报
回复
这样赋值是可以的,但是在复制的时候,原对象跟复制后的对象的use指针变量是相同的,即是你改变了原对象的use,也就同时改变了复制后对象的use。
yixiayizi 2009-10-20
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 taodm 的回复:]
看书不认真吧?同一类型的对象可以互相访问对方的私有数据,C++语法就这么规定的。
[/Quote]
额。。看过就忘记。。学的不扎实。。
谢谢 谢谢~~~
aizibion 2009-10-20
  • 打赏
  • 举报
回复
是在类外不能访问,关键是这是在成员函数中
taodm 2009-10-20
  • 打赏
  • 举报
回复
看书不认真吧?同一类型的对象可以互相访问对方的私有数据,C++语法就这么规定的。
yixiayizi 2009-10-20
  • 打赏
  • 举报
回复
可是c 是一个object,而q和use是private成员。
对象不是不能访问私有成员吗?
昵称很不好取 2009-10-20
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 fallening 的回复:]
可以,只要你不担心浅层拷贝问题
[/Quote]
按照这样用,浅复制防不胜防啊
ocean36 2009-10-20
  • 打赏
  • 举报
回复
study...........
fallening 2009-10-20
  • 打赏
  • 举报
回复
可以,只要你不担心浅层拷贝问题
taozi1234567 2009-10-20
  • 打赏
  • 举报
回复
浅拷贝啊!1:资源冲突,2:内存泄露3:重复释放

64,649

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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