运算符的重载?
搞了很久也还是不怎么能搞得懂?老是感觉重载运算符怪怪的,
大哥哥们能告诉我它的概念和特点吗?最好能举个简单的能让人明白的例子,
对了,重载函数是什么意思啊?
恩,我没有提问过,这是第一次,如果你们回答了,我怎么给你们给分呢?不好意思哦,我很菜!见笑了~
[解决办法]
假设你有个大数类:
class hugeNum
{
//...
};
hugeNum num1;
hugeNum num2;
//...
hugeNum num3;
要实现两个大数的相加,将结果保存到num3中,你可以使用两三种方法.
1.
给hugeNum加个add成员函数.
hugeNum add(const hugeNum& num2);
然后这样调用它
num3=num1.add(num2);
2.
使用全局部函数
hugeNum add2(const hugeNum & num1,const hugeNum & num2);
然后这样调用它
num3= add2(num1,num2);
3.
重载运行符+为友员或成员
hugeNum operator+(const hugeNum& n1,const hugeNum &n2 );
然后这样调用它.
num3=num1+num2;//因为我们对+运算符非常熟悉,所以很容易明白它的语意.
[解决办法]
也就是说,重载运算符只是为了让使用类的人以一种比较通俗易懂的方式编写代码. 它并不是不可替代的.
[解决办法]
恩,我没有提问过,这是第一次,如果你们回答了,我怎么给你们给分呢?不好意思哦,我很菜!见笑了~
=========
帖子列表旁边有管理的链接
lz还是找本书好好看看,或者网上自己找点资料
[解决办法]
在下也是初学者,我得理解是,函数重载的方法就是定义不同类型的形参或不同个数的形参,而重载的目的就是为了让他实现更多的功能
正如黄瓜兄的例子,原来的“+”函数只能实现内置类型的相加,而重载了以后她就可以实现用户所定义对象之间的相加了。
如果你把“+”函数定义为类函数,则一个看上去比较顺眼的形式应该是
num3=num1.operator +(num2);
这里应该还有一个左操作数和右操作数的问题,望高手指教……
[解决办法]
还是买本C++ Primer吧,几乎所有问题都有答案在上面。认真用本好书学,可以节省你很多时间。
[解决办法]
就是范围的问题