xcxd.net
当前位置:首页 >> 为什么要重载运算符 >>

为什么要重载运算符

方便调用是一方面,不用谢函数名,不用写括号什么的.另外,重载操作符更加符合使用习惯,比如对于复数类重载'+'操作符,使得代码更加清晰易懂

自定义类的赋值运算符重载函数的作用与内置赋值运算符的作用类似,但是要要注意的是,它与拷贝构造函数与析构函数一样,要注意深拷贝浅拷贝的问题,在没有深拷贝浅拷贝的情况下,如果没有指定默认的赋值运算符重载函数,那么系统将

运算符重载的实质不就是函数重载吗?之所以用运算符重载是为了写起来简洁,就这么简单.比如,你要让一个对象的内容给另一个对象的属性“定值”.你当然可以写成a.assign(b),但如果你进行了运算符重载的先期工作,就变成了a = b ;是不是很直观、简洁?难不成是为了故意增加语法复杂度?不是的啦~C++追求简洁与高效,这个你们老师没讲吗?奇怪了.但它又不会过分追求高效……存在,多多少少有一定的合理性……

1.操作符重载就是把操作符比如=,+,-,*,/这些运算符赋于新的意义. 2.操作符重载的目的: C++有许多内置的数据类型,包括int,char,double等,每一种类型都有许多运算符,例如加+,减,乘,除等.当用户定义了类的对象时,两个对象之

运算符重载可以更方便实现类的一些操作

因为要访问类里的成员,可能为私有成员,所以要作为友元函数.

重载其实还是比较重要的,这里的例子因为A类中的数据成员为int类型,而“+”运算符本来就可以进行整型等类型的计算.你可以尝试定义一个复数类,然后你就可以重载“+”、“-”等的预算符;例如:定义复数类complex,声明两个复数类变量a、b和c,如果你重载了“+”运算符,你就可以使用表达式c=a+b;如果你的程序有大量的关于复数类的运算,那么你重载运算符以后就方便多了.

因为系统自代的运算符有时候不能达到目的. 比如String 类没有+ 运算 重载之后实现字符串相连的操作

关于这个问题, 有些人的说法是避免二义性 但我的理解是, 本身就是规范. 是为了书写简单, 同时不容易出错,才规定必须重载为成员的.因为, 常规来说, 这几个运算符重载, 都是操作本身成员的, 所以重载为成员函数就是自然而然的了.开发者干脆就写入规范了.其实如果没这个规定, 重载为友元, 甚至在极端情况下, 操作的成员都是public情况下, 重载为普通全局函数也是没什么的.但既然规定了,就没必要深究原因, 遵循规范就好了.

重载运算符主要是为了比如 没有 string类型 在C里面你想要 让 char * p1 = "123" char *p2 = "456" p1 + p2 这种结果无法预知的,但是你通过string 类重载 + 运算符 你可以 string p1 string p2 .p1 + p2 这种就是正确的了.主要方便运算操作

qimiaodingzhi.net | gsyw.net | lpfk.net | 4585.net | 369-e.net | 网站首页 | 网站地图
All rights reserved Powered by www.xcxd.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com