注册 登录
编程论坛 C++ Builder

关于函数符重载,二维数组传值问题

colorbuttery 发布于 2012-12-14 15:32, 1698 次点击
我的程序如下:实现二维数组里每一个元素(第一个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值相加。然后返回结果,不知道这样定义有问题没。"//"后面的内容是想替换原来的内容。类不能定义自己的对象数组,所以不能实现。


0 回复
1