实现数组类(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
                    
             
            
            
            
            
            
                                
评论