关于函数符重载,二维数组传值问题
我的程序如下:实现二维数组里每一个元素(第一个A[2][2]数组,与第二个数组B[2][2])的对应x,y值相加减,(其中B【2】【2】数组的值我手动输入,)在两值相加减时一直出现不了结果,请大家帮忙看看,小弟真心在此表示感谢。我用的软件是c++ builder
以下为主函数里的程序:
#include <vcl.h> //c++ builder 的头文件
#pragma hdrstop
#include "Unit1.h"
#include <tchar.h>
#include <iostream.h>
-----------------------------------------------------------------------------
int m,n,x,y;
int _tmain(int argc, _TCHAR* argv[])
{
dimen A[2][2]={dimen(1,2),dimen(3,4),dimen(5,6),dimen(7,8)};
dimen B[2][2],C[2][2],D[2][2];
cout<<"A数组内容:"<<"\n";
for (m=0;m<2;m++)
{ for(n=0;n<2;n++)
cout<<"("<<A[m][n].getx()<<","<<A[m][n].gety()<<")"<<'\n';
}
------------------------------------------------------------------------------------------
cout<<"请输入8个数:"<<"\n";
for (m=0;m<2;m++)
{ for(n=0;n<2;n++)
{
cin>>x;
cin>>y;
B[m][n]=dimen(x,y);
}
}
for (m=0;m<2;m++)
{ for(n=0;n<2;n++)
cout<<"("<<B[m][n].getx()<<","<<B[m][n].gety()<<")"<<'\n';
}
------------------------------------------------------------------------------------------------------------------------------------------------
我先声明了个类,然后在类里头声明一个类自己的对象数组,一直报错“ Undefined structure 'dimen'”,想实现A数组每个对象数组的元素与B数组每个对象数组的对应x,y值相加。然后返回结果。下面的功能一直实现不了。
C[2][2]=A[2][2].operator +(B[2][2]);
for (m=0;m<2;m++)
for(n=0;n<2;n++)
cout<<"("<<C[m][n].getx()<<","<<C[m][n].gety()<<")"<<'\n';//A数组每个对象数组的元素与B数组每个对象数组的对应x,y值相加。然后返回结果,具体运算过程在类运算符重载里实现。
以下为类的定义:
#include "Unit1.h"
class dimen
{
protected:
int x,y;
// dimen a[2][2];
public:
dimen(int x1=0,int y1=0)
{
x=x1;
y=y1;
}
int getx();
int gety();
dimen operator+(dimen b[2][2]);
};
int dimen::getx()
{
return x;
}
int dimen::gety()
{
return y;
}
dimen dimen::operator + (dimen b[2][2])
{
dimen tmp[2][2];
for (int i = 0; i < 2; i++)
for (int j = 0; j < 2; j++)
{
tmp[j].x = x+b[j].x; //tmp[j].x =a[j].x+b[j].x;
tmp[j].y=y+b[j].y; //tmp[j].y =a[j].y+b[j].y;
}
return tmp[2][2];
}
// A数组每个对象数组的元素x,y与B数组每个对象数组的对应b[j].x,b[j].y值相加。然后返回结果,不知道这样定义有问题没。"//"后面的内容是想替换原来的内容。类不能定义自己的对象数组,所以不能实现。