| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 845 人关注过本帖
标题:自学c++,学到二元运算符重载卡住了...
只看楼主 加入收藏
蕃茄脸红红
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2007-10-9
收藏
 问题点数:0 回复次数:4 
自学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-09 19:38
蕃茄脸红红
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2007-10-9
收藏
得分:0 

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

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


2007-10-09 19:54
蕃茄脸红红
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2007-10-9
收藏
得分:0 
感觉好象又懂了...可是心理老是疙瘩.老感觉肯定有模糊的地方...难道我有点神经质...

2007-10-09 19:56
HoZI
Rank: 1
等 级:新手上路
帖 子:11
专家分:0
注 册:2007-10-9
收藏
得分:0 
楼主你好用心,我们一起加油吧            
2007-10-10 00:02
ltjobzyj
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2009-11-10
收藏
得分:0 
cow(int a)
{
weight=a;
}
两个对象都有共用这一个构造函数,但都用各自的
cow a(number1);
cow b(number2);
number1和number2来调用上面的函数么。


int operator>(cow a)
这个二元重载运算符函数得有两个参数(虽然前一个参数没有用括号括,即对象本身),第二个参数是传入的第二个对象cow b了么。只是用&引用好点吧
if(a>b)这里不就是在调用这个函数么,其结果只有1与0两个值,而且cow temp这个temp好碍事,这temp对象在这里纯属多事么,在a对象里weight就应该也是a自己可以访问的啊。temp.weight=weight这样的东西感觉好像有点多余的么
int operator>(cow a)这个函数这时本身就是a对象本身的么,自然是可以访问a.weight的啊

嘿嘿,在下也是新手,只是浅见,还容不得高人的法眼啊。
2009-11-10 20:38
快速回复:自学c++,学到二元运算符重载卡住了...
数据加载中...
 
   



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

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