1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > VC++之对象含指针成员指向堆空间并调用复制构造函数问题—参考范磊VC++

VC++之对象含指针成员指向堆空间并调用复制构造函数问题—参考范磊VC++

时间:2022-12-30 23:04:26

相关推荐

VC++之对象含指针成员指向堆空间并调用复制构造函数问题—参考范磊VC++

1.

对象a,b都是在堆中创建的.

对象a是直接在堆中创建.

对象b是调用b的复制构造函数并成为对象a的一份拷贝.

问题出在复制构造函数定义中:

1)这种定义会导致a,b对象中的成员变量指向同一块堆内存,析构对象a没有问题,但析构a之后对象b中的成员变量指向的堆空间已经被释放了,

于是就变成了迷途指针,不管我们放不放问b中的成员变量所指向的堆空间存放的值,都有迷途指针的问题!

2)再有程序结束时会调用b的析构函数,因为b的析构函数中delete x语句出现1)中的严重问题,所以是无法析构b的.

2.

正确的方式:

让a,b中的成员变量指向不同的堆空间,这样便互不影响!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。