注册 登录
编程论坛 C++教室

哪位仁兄帮忙看看,哪里出错了

niitzz 发布于 2011-10-17 19:58, 526 次点击

class array
{
public:
    array(){}
    void setdata();
    friend array operator+(array &a1,array &a2);
    //friend ostream &operator<<(ostream &,array &);
private:
   int a[2][3];
};

 void array::setdata()
{
    int a[2][3];
    for(int i=0;i<2;i++)
        for(int j=0;j<3;j++)
            cin>>a[i][j];
}

array operator+(array &a1,array &a2)
{
    int x[2][3];
    for(int i=0;i<2;i++)
        for(int j=0;j<3;j++)
         //int x[i][j]=a1.a[i][j]+a2.a[i][j];
        return int (a1.a[i][j]+a2.a[i][j]);
            //return int x[0][0];
           
}

/*
ostream &operator<<(output & out,array &c2)
{
     for(int i=0;i<2;i++)
        for(int j=0;j<3;j++)
            out<<c2[i][j];
        return out;
}
*/


void main()
{
  array a,b,c;
  a.setdata();
  b.setdata();
  //cout<<a+b;
}

2 回复
#2
zzhen2012011-10-17 21:32
#include <iostream>
using namespace std;
class array
{
public:
    array(){}
    void setdata();
    friend array operator+(array &a1,array &a2);
    friend ostream &operator<<(ostream &,array &);
private:
   int a[2][3];
};

void array::setdata()
{
//    int a[2][3];
    for(int i=0;i<2;i++)
        for(int j=0;j<3;j++)
        {
            cin>>a[i][j];
            cout<<"get"<<a[i][j]<<endl;
        }
}

array operator+(array &a1,array &a2)
{
    array test;
    for(int i=0;i<2;i++)
        for(int j=0;j<3;j++)
        {
         test.a[i][j]=a1.a[i][j]+a2.a[i][j];
        }
        return test;         
}


ostream &operator<<(ostream& out,array &c2)
{
     for(int i=0;i<2;i++)
        for(int j=0;j<3;j++)
            out<<c2.a[i][j];
        return out;
}

void main()
{
  array a,b,c;
  a.setdata();
  b.setdata();
  cout<<a+b;
}
试试这个
#3
niitzz2011-10-18 21:56
谢谢兄弟啦,以后有事还请兄弟多帮忙尼,呵呵
1