实现数组类(C++ 拷贝构造函数、拷贝函数)要判断赋值左右对象不相等,坑惨了

2020-12-13 03:35

阅读:547

标签: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


评论


亲,登录后才可以留言!