#include
class CTwoArray
{
int *ptr; //数组指针,指向二维数组的第一行第一列的元素
int row; //数组行数
int col; //数组列数
public:
CTwoArray(int m,int n);//构造函数
~CTwoArray();//析构函数
CTwoArray(const CTwoArray &a); //拷贝构造函数
void set(); //从键盘输入数据,给二维数组元素赋值
CTwoArray operator+(CTwoArray &b);//重载为类的成员函数
void print(); //输出二维数组元素
};
CTwoArray::CTwoArray(int m,int n)
{
ptr = new int[m*n];
row = m;
col = n;
}
CTwoArray::~CTwoArray()
{
delete[] ptr;
}
CTwoArray::CTwoArray(const CTwoArray &a)
{
row = a.row;
col = a.col;
ptr = new int[row*col];
}
void CTwoArray::set()
{
for(int i=0;i {
for(int j=0;j {
scanf("%d",ptr+j+i*col);
}
}
}
CTwoArray CTwoArray::operator+(CTwoArray &b)
{
int m = row int n = col CTwoArray obj(m,n);
for(int i=0;i {
for(int j=0;j {
obj.ptr[j+i*col] = ptr[j+i*col] + b.ptr[j+i*col];
}
}
return obj;
}
void CTwoArray::print()
{
for(int i=0;i {
for(int j=0;j {
printf("%d ",ptr[j+i*col]);
}
printf("\n");
}
}
int main()
{
CTwoArray a(3,3);
CTwoArray b(3,3);
printf("Input a:\n");
a.set();
printf("Input b:\n");
b.set();
printf("Output a:\n");
a.print();
printf("Output b:\n");
b.print();
printf("Output a+b:\n");
(a+b).print();
}