c++ 关于对象之间的赋值

我看书上说对象之间的赋值如:对象名1=对象名2;类的数据成员中不可以有动态分配的数据否则将出现严重的后果能详细的解释下什么意思吗最好有程序例子说明... 我看书上说对象之间的赋值
如:对象名1=对象名2;
类的数据成员中不可以有动态分配的数据 否则将出现严重的后果

能详细的解释下什么意思吗 最好有程序例子说明
展开
 我来答
yuantailing
推荐于2018-05-04 · TA获得超过2545个赞
知道小有建树答主
回答量:1167
采纳率:92%
帮助的人:655万
展开全部

对象赋值:默备棚认赋值操作符是把对象的每个数据成员都赋值。

有动态内存分配的举例

class A{
public:
A(){p=new int [100];}
~A(){delete[] p;}
private:
int *p;
};
int main()
{
A a1, a2;
a2 = a1;
return 0;
}

此时a2=a1这一句,a2原来的指针p丢失,内存泄漏。最后a1、a2析构的时候,郑誉原来仿丛则a1.p被delete[]操作符删两次,可能出错。

weber2114
2013-08-08 · 超过39用户采纳过TA的回答
知道小有建树答主
回答量:150
采纳率:0%
帮助的人:92.7万
展开全部
动态分配的数据用指针接受,原来的指针指向一个申请到的内存地址,现在复制销斗后指向了另一个地址,原来的内存地址就没有办法回收了(动态分配的内存必须delete),就是内存泄露,例子看做斗塌纯圆一楼
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式