标签:
1 #include<iostream> 2 #include<string> 3 using namespace std; 4 template<class T> 5 class Array{ 6 private: 7 T *list; 8 int size; 9 public: 10 Array(int size=50); 11 Array(const Array<T>&a); 12 ~Array(); 13 T operator+(const Array<T>&other); 14 Array<T>& operator=(const Array<T>&other); 15 T& operator [](int i); 16 Array<T>& operator *(); 17 int getSize() const; 18 // void resize( int size); 19 T operator -(const Array<T>&other); 20 void input(){ 21 cout<<"输入你想创建的数组大小"<<endl; 22 int n; 23 cin>>n; 24 size=n; 25 for(int i=0;i<size;i++){ 26 cout<<"输入你想创建的数组的第"<<i+1<<endl; 27 cin>>this->list[i]; 28 } 29 } 30 void coutp(){ 31 for(int i=0;i<size;i++){ 32 cout<<list[i]<<" "; 33 } 34 } 35 }; 36 template<class T> 37 Array<T>::Array(int size){ 38 // assert(size>=0); 39 this->size=size; 40 list=new T[size]; 41 } 42 template<class T> 43 Array<T>::~Array(){ 44 delete [] list; 45 } 46 template<class T> 47 Array<T>::Array(const Array<T>&a){ 48 this->size=a.size; 49 this->list=new [this->size]; 50 for(int i=0;i<size;i++){ 51 this->list[i]=a.list[i]; 52 } 53 } 54 template<class T> 55 Array<T>& Array<T>::operator=(const Array<T>&other){ 56 this->size=other.size; 57 this->list=new [this->size]; 58 59 for(int i=0;i<size;i++){ 60 this->list[i]=a.list[i]; 61 } 62 return *this; 63 } 64 template<class T> 65 T& Array<T>::operator[](int i){ 66 return &(this->list[i]); 67 } 68 template<class T> 69 Array<T>& Array<T>::operator *(){ 70 return list; 71 } 72 template<class T> 73 T Array<T>::operator +(const Array<T>&other){ 74 T c; 75 for(int i=0;i<this->size;i++){ 76 c.list[i]=this->list[i]+other.list[i]; 77 } 78 return c; 79 } 80 template<class T> 81 T Array<T>::operator -(const Array<T>&other){ 82 T c; 83 for(int i=0;i<this->size;i++){ 84 c.list[i]=this->list[i]-other.list[i]; 85 } 86 return c; 87 } 88 int main(){ 89 Array<string> a; 90 a.input(); 91 a.coutp(); 92 Array<string> b; 93 b.input(); 94 b.coutp(); 95 Array<string> d; 96 d=(a+b); 97 // Array<int> b; 98 return 0; 99 }
标签:
原文地址:http://www.cnblogs.com/qianxunke/p/4569852.html