C++重载“+”

来源:百度知道 编辑:UC知道 时间:2024/06/16 09:46:16
程序是求,两个两行三列数组之和
#include <iostream>
using namespace std;
class arry
{
public:
arry(int x[2][3])
{for(int i=0;i<2;i++)
for(int j=0;j<3;j++)
arr[i][j]=x[i][j];
}
arry operator+(arry b); //类的成员函数
void display();
private:
int arr[2][3];

};
arry arry::operator+(arry b)
{
int c[2][3];
for(int i=0;i<2;i++)
for(int j=0;j<3;j++)
c[i][j]=arr[i][j]+b.arr[i][j];
return arry(c);
}

void arry::display()//自己写display的实现吧:)
{ arry c( int c[2][3]);
for(int i=0;i<2;i++)
for(int j=0;j<3;j++)
{cout<<"c="<<c;
if(j=3)
cout<<endl;
}
}

void main()
{
int a1[2][3]={1,2,3,4,5,6},b1[2][3]={1,2,3,4,5,6},c1[2][3]; //注意这两行的修改
arry a(a1),b(b1),c(c1); //注意这两行的修改
cout<<"a=";a.display();
cout<<"b=";b.

加//的地方改了
void arry::display()//自己写display的实现吧:)
{//
for(int i=0;i<2;i++)
for(int j=0;j<3;j++)
{cout<<arr[i][j]<<" ";//
if(j==2)//
cout<<endl;
}
}

////////////////////////////////
我看到的不是你那个错误
void arry::display()//自己写display的实现吧:)
{ arry c( int y[2][3]);
for(int i=0;i<2;i++)
for(int j=0;j<3;j++)
{
cout<<"c="<<c;//c的类型是arry 没有对应的操作方法
if(j=3)
cout<<endl;
}
//////////////////////////////////////////////////////

下面有一个arry c同时有一个 int c[2][3]

void arry::display()//自己写display的实现吧:)
{ arry c( int c[2][3]);}

我用VC6编译运行一点问题都没有。所有。。。

什么乱七八糟的啊。真的好i