| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 619 人关注过本帖
标题:不能实现重载相加,能说出这是哪错了吗?
取消只看楼主 加入收藏
轮廓
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2007-4-20
收藏
 问题点数:0 回复次数:5 
不能实现重载相加,能说出这是哪错了吗?

实现两个矩阵的相加,但好像那个void operator+(Rectangle R1,Rectangle R2);函数实现有错误,
请高手指点



#include<iostream>
using namespace std;
int const N=2;
class Rectangle
{
private:
int Array[N][N];

public:
Rectangle();

void operator+(Rectangle R1,Rectangle R2);

void display();
void setR();

};

Rectangle::Rectangle()
{
for(int j=0;j<N;j++)
for(int i=0;i<N;i++)
Array[j][i]=0;
}

void Rectangle::setR()
{
for(int j=0;j<N;j++)
for(int i=0;i<N;i++)
cin>>Array[j][i];

}


void Rectangle::operator+(Rectangle R1,Rectangle R2)
{

for(int j=0;j<N;j++)
for(int i=0;i<N;i++)
R1.Array[j][i]=R1.Array[j][i]+R2.Array[j][i];


}


void Rectangle::display()
{
for(int j=0;j<N;j++)
{for(int i=0;i<N;i++)
cout<<Array[j][i]<<'\t';
cout<<endl;
}
}

int main()
{
Rectangle R1,R2;//R3;
R1.setR();
cout<<"输出R1: \n";
R1.display();


R2.setR();
cout<<"输出R2: \n";
R2.display();

//R1与R2相加后把值给R1
R1=R1+R2;
cout<<"输出R1: \n";
R1.display();


return 0;
}

搜索更多相关主题的帖子: 相加 重载 
2007-06-06 15:56
轮廓
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2007-4-20
收藏
得分:0 
回复:(轮廓)不能实现重载相加,能说出这是哪错了吗...
谢谢,但那我也试过但还是错
2007-06-06 17:12
轮廓
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2007-4-20
收藏
得分:0 
谢谢 去试试
2007-06-06 17:35
轮廓
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2007-4-20
收藏
得分:0 

void operator+(Rectangle R1); //类成员重载

实现都差不多,注意下参数和访问控制就好了。


这个我开始就是这样试的,但就是不行

能写一下吗?

2007-06-06 17:39
轮廓
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2007-4-20
收藏
得分:0 

谢谢,我回去再去试一下

我现在是在网吧,没编译器,有的请编完发一下错误,谢谢

2007-06-08 14:25
轮廓
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2007-4-20
收藏
得分:0 
恩,谢谢无限循环,搞定了
谢晚了
2007-06-12 21:01
快速回复:不能实现重载相加,能说出这是哪错了吗?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017538 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved