| 编程中国 | 业界新闻 | 技术文章 | 视频教程 | 下载频道 | 程序源码 | 个人空间 | 编程论坛
全能ASP/PHP/ASP.NET主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付学习型 ASP/PHP/ASP.NET 主机 30元/年
高端软件开发 = 年薪十万不是梦赛孚耐:软件保护加密专家身份认证令牌USB KEY 
共有 178 人关注过本帖
标题:自学c++,学到二元运算符重载卡住了...
收藏  订阅  推荐  打印 
蕃茄脸红红
Rank: 1
等级:新手上路
帖子:9
积分:190
注册:2007-10-9
自学c++,学到二元运算符重载卡住了...

这个是我模仿书上的单目运算符的格式写的,可以运行,运行出来也是正确的.

重载的实际作用我知道.可是实现的过程我不太清楚,我在程序上做了下自己的理解,帮我看看那里理解错误了

还有为什么这样实现的过程先是什么和什么.我对这个格式看的莫名.手里那个资料太抽象又少..

#include<iostream.h>
class cow
{
int weight;
public:
cow()
{
weight=0;

}
cow(int a)
{
weight=a;
}
int operator >(cow a)
{

cow temp;//实例化临时对象
temp.weight=weight;//把第一个输入的对象的参数复给临时对象的数据成员
/*我想问的是上面这个weight为什么他就知道是第一个输入参数对象的weight.为什么不需要在前面加对象名,而且加了对象名会报错.*/
if(temp.weight>a.weight)//和第二个对象的数据成员进行比较
{
return 1;//如果是大的话,代表真
}
else
{
return 0;//如果不是大的话,代表假(这个0和1是条件判断用的?)
}
}

};

void main()
{
int number1,number2;
cout<<"输入A牛的重量:"<<endl;
cin>>number1;
cout<<"输入B牛的重量:"<<endl;
cin>>number2;
cow a(number1);
cow b(number2);
if(a>b)
{
cout<<"A牛比B牛重"<<endl;
}
else
{
cout<<"B牛比A牛重的"<<endl;
}
}

搜索更多相关主题的帖子: 运算符  cow  weight  int  重载  
2007-10-9 19:38
蕃茄脸红红
Rank: 1
等级:新手上路
帖子:9
积分:190
注册:2007-10-9

哎..就是不明白为什么会识别weight为第一个对象的参数

要么就是只能说是c++这个语言本身的语法就这样.


2007-10-9 19:54
蕃茄脸红红
Rank: 1
等级:新手上路
帖子:9
积分:190
注册:2007-10-9

感觉好象又懂了...可是心理老是疙瘩.老感觉肯定有模糊的地方...难道我有点神经质...

2007-10-9 19:56
HoZI
Rank: 1
等级:新手上路
帖子:11
积分:210
注册:2007-10-9

楼主你好用心,我们一起加油吧            
2007-10-10 00:02
关于我们 | 广告合作 | 编程中国 | 清除Cookies | Archiver | WAP | TOP

编程中国 版权所有,并保留所有权利。鲁ICP备08000592号
Powered by Discuz, Processed in 0.057227 second(s), 9 queries.
Copyright©2004-2008, BCCN.NET, All Rights Reserved