实现数组类(C++ 拷贝构造函数、拷贝函数)要判断赋值左右对象不相等,坑惨了
标签:out space ++ let 赋值 程序 pac 大小 深拷贝
#include
using namespace std;
class ArrayIndexOutOfBoundsException{ // 异常类
public:
int index;
ArrayIndexOutOfBoundsException(int k){
index = k;
}
};
class Array{
private:
int *data;
int size;
static const int dSize = 10; // 数组默认大小
public:
Array( ){ // 无参构造
size = dSize;
data = new int[size]( );
}
Array(int n ){ // 有参构造
size = n;
data = new int[size]( );
}
Array(const Array& arr)//拷贝构造函数,深拷贝
{
if(arr.size>0)
{
size = arr.size;
data = new int[size]( );
for (int i = 0; i data[i] = arr.data[i];
}
}
return *this;
}
~Array()
{
if (this->data != NULL)//不为空才释放
{
delete []data;
}
}
int& operator [] (int k){ // 运算符 [ ] 重载,以方便数组的使用
if(k=size) throw ArrayIndexOutOfBoundsException(k);
return data[k];
}
friend ostream& operator > n >> k;
Array a(n); // 构造数组,大小为 n
for(int i=0; i
实现数组类(C++ 拷贝构造函数、拷贝函数)要判断赋值左右对象不相等,坑惨了
标签:out space ++ let 赋值 程序 pac 大小 深拷贝
原文地址:https://www.cnblogs.com/cstdio1/p/11080172.html
评论