题目:编一个程序,用成员函数重载运算符"+"和"-",将两个二维数组相加和相减,要求第一个二维数组的值由构造函数设置,另一个二维数组的值有键盘输入.
我的程序是这样的:
#include "stdafx.h"
#include<iostream.h>
class HUN{
public:
int hun[2][3];
void set_hun();
void input();
void display();
HUN operator+(HUN c);
HUN operator-(HUN c);
private:
int hun1[2][3];
};
void HUN::set_hun()
{
hun[0][1]=16; hun[0][2]=15; hun[0][3]=14;
hun[1][1]=13; hun[1][2]=12; hun[1][3]=11;
}
void HUN::input()
{
int i,j;
for(i=0;i<2;i++)
for(j=0;j<3;j++)
{ cin>>hun[i][j];
}
}
void HUN::display()
{
int i,j;
for(i=0;i<2;i++)
for(j=0;j<3;j++)
{ cout<<hun[i][j]<<" "<<endl;
}
}
HUN HUN::operator+(HUN c)
{
int i,j;
HUN a;
for(i=0;i<2;i++)
for(j=0;j<3;j++)
{
a.hun[i][j]=hun[i][j]+c.hun1[i][j];
return a;
}
}
HUN HUN::operator-(HUN c)
{
int i,j;
HUN a;
for(i=0;i<2;i++)
for(j=0;j<3;j++)
{
a.hun[i][j]=hun[i][j]-c.hun1[i][j];
return a;
}
}
int main()
{
HUN A,B,C,D;
A.hun[2][3];
B.input();
A.display();
B.display();
C.display();
D.display();
return 0;
}
当我运行的时候,输入六个1时,运行的结果是变成这样了,
-858993640
-858993640
-858993640
-858993640
-858993640
-858993640
1
1
1
1
1
1
-858993640
-858993640
-858993640
-858993640
-858993640
-858993640
请问错在哪里了?