c++用运算符重载房贷计算器20062006年6月15日是2006年的第多少天?

C++ 一元运算符重载
一元运算符只对一个操作数进行操作,下面是一元运算符的实例:
一元减运算符,即负号( - )
逻辑非运算符( ! )
一元运算符通常出现在它们所操作的对象的左边,比如 !obj、-obj 和 ++obj,但有时它们也可以作为后缀,比如 obj++ 或 obj--。
下面的实例演示了如何重载一元减运算符( - )。
#include &iostream&
class Distance
// 0 到无穷
// 0 到 12
// 所需的构造函数
Distance(){
inches = 0;
Distance(int f, int i){
// 显示距离的方法
void displayDistance()
cout && "F: " && feet && " I:" && inches &&
// 重载负运算符( - )
Distance operator- ()
inches = -
return Distance(feet, inches);
int main()
Distance D1(11, 10), D2(-5, 11);
// 取相反数
D1.displayDistance();
// 距离 D1
// 取相反数
D2.displayDistance();
// 距离 D2
当上面的代码被编译和执行时,它会产生下列结果:
F: -11 I:-10
F: 5 I:-11
希望上面的实例能够帮您更好地理解一元运算符重载的概念,类似地,您可以尝试重载逻辑非运算符( ! )。C++中运算符重载为什么算是增加了新的运算符?不是只是改写原有运算符吗?_百度知道
C++中运算符重载为什么算是增加了新的运算符?不是只是改写原有运算符吗?
提问者采纳
运算符重载是多态的一种,一个运算符可以实现多种功能。不是增加了新的运算符。是一个运算符的多种功能。
提问者评价
其他类似问题
为您推荐:
运算符重载的相关知识
其他1条回答
没有增加,只是扩展。
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁百度--您的访问出错了
&您的访问出错了
很抱歉,您要访问的页面不存在。
请检查您输入的网址是否正确。
如果您不能确认您输入的网址,请浏览页面,来查看您所要访问的网址。
直接输入要访问的内容进行搜索:
如还有疑问请访问获得解决方法
&2013 Baidu&&/&&&&/&&&&/&&
C++对运算符重载定义了如下几条规则。
1) C++不允许用户自己定义新的运算符,只能对已有的C++运算符进行重载。 例如,有人觉得BASIC中用&**&作为幂运算符很方便,也想在C++中将&**&定义为幂运算符,用&3**5&表示35,这样是不行的。
2) 重载不能改变运算符运算对象(即搡作数)的个数。如关系运算符&&&和& && 等是双目运算符,重载后仍为双目运算符,需要两个参数。运算符& +&,&-&,&*&,&&&等既可以作为单目运算符,也可以作为双目运算符,可以分别将它们重载为单目运算符或双目运算符。
3) 重载不能改变运算符的优先级别。例如&*&和&/&优先于& +&和&-&,不论怎样进行重载,各运算符之间的优先级别不会改变。有时在程序中希望改变某运算符的优先级,也只能使用加圆括号的办法强制改变重载运算符的运算顺序。
4) 重载不能改变运算符的结含性。如赋值运算符是右结合性(自右至左),重载后仍为右结合性。
5) 重载运算符的函数不能有默认的参数,否则就改变了运算符参数的个数,与前面第(2)点矛盾。
6) 重载的运算符必须和用户定义的自定义类型的对象一起使用,其参数至少应有一个是类对象(或类对象的引用)。也就是说,参数不能全部是C++的标准类型,以防止用户修改用于标准类型数据的运算符的性质,如下面这样是不对的:
& & int operator + (int a,int b)
& & & & retum(a-b);
原来运算符+的作用是对两个数相加,现在企图通过重载使它的作用改为两个数相减。 如果允许这样重载的话,如果有表达式4+3,它的结果是7呢还是1?显然,这是绝对禁止的。
如果有两个参数,这两个参数可以都是类对象,也可以一个是类对象,一个是C ++标准类型的数据,如
& & Complex operator + (int a,Complex&c)
& & & & return Complex(a +c.real, c.imag);
它的作用是使一个整数和一个复数相加。
7) 用于类对象的运算符一般必须重载,但有两个例外,运算符&=&和&&&不必重载。
①赋值运算符( = )可以用于每一个类对象,可以利用它在同类对象之间相互赋值。 我们知道,可以用赋值运算符对类的对象x值,这是因为系统已为每一个新声明的类重载了一个赋值运算符,它的作用是逐个复制类的数据成员。用户可以认为它是系统提供的默认的对象赋值运算符,可以直接用于对象间的赋值,不必自己进行重载。但是有时系统提供的默认的对象赋值运算符不能满足程序的要求,例如,数据成员中包含指向动态分配内存的指针成员时,在复制此成员时就可能出现危险。在这种情况下, 就需要自己重载赋值运算符。
②地址运算符&也不必重载,它能返回类对象在内存中的起始地址。
8) 从理论上说,可以将一个运算符重载为执行任意的操作,如可以将加法运算符重载为输出对象中的信息,将&&&运算符重载为&小于&运算。但这样违背了运算符重载的初衷,非但没有提{可读性,反而使人莫名其妙,无法理解程序。应当使重载运算符的功能类似于该运算符作用于标准类型数据时所实现的功能(如用&+&实现加法,用&&&实现&大于&的关系运算)。
9) 运算符重载函数可以是类的成员函数,也可以是类的友元函数,还可以是既非类的成员函数也不是友元函敝的普通函数。
以上这些规则是很容易理解的,不必死记。把它们集中在一起介绍,只是为了使读者有一个整体的概念,也便于查阅。
推荐文章 TOP10}

我要回帖

更多关于 2006个人所得税计算器 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信