1.
对象a,b都是在堆中创建的.
对象a是直接在堆中创建.
对象b是调用b的复制构造函数并成为对象a的一份拷贝.
问题出在复制构造函数定义中:
1)这种定义会导致a,b对象中的成员变量指向同一块堆内存,析构对象a没有问题,但析构a之后对象b中的成员变量指向的堆空间已经被释放了,
于是就变成了迷途指针,不管我们放不放问b中的成员变量所指向的堆空间存放的值,都有迷途指针的问题!
2)再有程序结束时会调用b的析构函数,因为b的析构函数中delete x语句出现1)中的严重问题,所以是无法析构b的.
2.
正确的方式:
让a,b中的成员变量指向不同的堆空间,这样便互不影响!