这个类的中载函数如何在类外定义啊,请大家帮一下忙把。
#include <iostream> using namespace std;class MyArray{private: int *arr; //用于存放动态分配的数组内存首地址 int size; //数组大小public: MyArray & operator =(const MyArray &A); //重载“=”使得数组对象可以整体赋值 int & operator[](int i); //重载[],使得Array对象也可以如C++普通数组一样,用a[i]形式取出};int main(){ int a[10]={1,2,3,4,5,6,7,8,9,10}; int b[10]={4,5,6,7,8,9,10,11,12,13}; MyArray arr1(a,10); MyArray arr2(b,10); MyArray arr3(10); system("pause"); return 0;}
int MyArray::operator[](int i){ return arr[i];}
[解决办法]
class MyArray{private: int *arr; //用于存放动态分配的数组内存首地址 int size; //数组大小public: MyArray & operator =(const MyArray &A); //重载“=”使得数组对象可以整体赋值 int & operator[](int i); //重载[],使得Array对象也可以如C++普通数组一样,用a[i]形式取出};MyArray& MyArray::operator=(const MyArray& A){ size = A.size; memcpy(arr,A.arr,sizeof(int)*size); }int& MyArray::operator[](int i){ return arr[i];}
[解决办法]
MyArray& MyArray::operator=(const MyArray& A)返回*this就可以了