C++基础学习笔记----第九课(构造函数)(二)

2014-11-24 03:07:04 · 作者: · 浏览: 4
; int* ap; public: A(int length); A(const A& aj); int getlength(); void setdata(int index,int data); int getdata (int index); void destroy(); }; #endif 通过上面的a.cpp可以看出,这里没有使用默认的 C++拷贝构造函数,因为默认的
C++
拷贝构造函数只是进行简单的值复制
,也就是将我们在 构造函数中的数组的大小和数组的指针进行复制经过拷贝构造函数的数组和原来的数组指向同一块内存空间,而我们在主函数中对同一块内存空间进行了两次delete,所以程序会崩溃。 解决办法是不使C++编译器默认的拷贝构造函数,在自己定义的拷贝构造函数中重新为第二个数组分配内存空间。