菁英数字科技(猩码)-猩码学苑-专注软件开发人才菁英教育
标题: C++的运算符重载 [打印本页]
作者: Fat。 时间: 2024-4-2 15:18
标题: C++的运算符重载
在C++学习中,运算符重载是一个比较重要的知识点,在这篇技术文章分享中,我会为大家做一些知识点分享,包括运算符重载的概念、方法、格式、规则、归纳等等,无论你是初学者还是技术提升,相信会给你一些实质性的帮助。
什么是运算符的重载:
在c++中我们都知道有函数重载的概念,在类和对象的设计中还设计到了成员函数重载。同样c++也提供了运算符的重载,所谓重载,就是赋予新的含义。实际上我们在前期的学习过程中已经不知不觉使用了运算符重载,如"<<“和”>>“本来是c++的位移运算符,但是却可以用来输入与输出,这是因为c++系统对”<<“和”>>"运算符进行了重载,用户在不同的场合下使用它们,作用是不同的。
运算符重载的方法:
运算符重载的方法是定义一个运算符重载函数,也就是说,运算符重载函数是通过定义一个函数来实现的,运算符重载实质上是函数的重载。
运算符重载的格式:
函数类型 operator 运算符名称(形参列表)
在上面的格式中,operator是c++的关键字,是专门用于定义重载运算符的函数的,运算符名称就是c++已经有的运算符。注意:函数名是由operator和运算符组成
重载运算符的规则:
1.c++不允许用户自己定义新的运算符,只能对已经有的运算符进行重载。
2.c++允许重载的运算符
双目关系运算符:+,-,,/,%
关系运算符:==,!=,<,>,<=,>=,
逻辑运算符:||,&&,!
单目运算符:+,-,指针,&
自增自减运算符:++,–
位运算符:|,&,~,^,<<,>>
赋值运算符:=,+=,-=,=,/=,%=,&=,|=,^=,<<=,>>=
空间申请与释放:new,delete,new[],delete[]
其他运算符:()函数调用,->,->,逗号,[]下标
c++中不能重载的运算符有五个
.(成员访问运算符),(成员指针访问运算符),:
域运算符),sizeof(长度运算符),?
条件运算符) 3.重载不能改变运算符运算对象的个数
4.重载不能改变运算符的优先级
5.重载不能改变运算符的结合性
6.重载运算符的函数不能有默认的参数
7.重载的运算符必须和用户定义的自定义类型的对象一起使用,其参数至少应有一个使类对象(或类对象的引用)。也就是说,参数不能全部使c++的标志类型,以防止用户修改用于标准运算符的性质。
8.用于类对象的运算符一般必须重载,但是有两个例外,运算符“=”和运算符“&”。
“=”可以用于每个类对象,这是因为系统已经为每一个新声明的类重载了赋值运算符,它的作用是逐个复制类对象的成员。
&也不必重载,它能返回对象在内存中的地址。
C++运算符重载的归纳:
C++中,运算符重载是很重要的,很有实用意义的。它使类的设计等价丰富多彩,扩大了类的功能和使用范围,使程序易于理解,易于对对象进行操作,它体现了为用户着想,方便用户使用的思想。应当注意到,在运算符重载中使用引用的重要性。利用引用作为函数的形参可以在调用函数的过程中不用值传递的方式进行虚实结合,而是通过址传递的方法使形参成为实参的别名,而不必设置一个形参来存放实参传递过来的值,因此减少了时间和空间的开销。
猩码学苑作为一家专业的C++开发培训机构,课程体系结合企业技术需求设置,授课讲师经验丰富,实打实的项目实战,严格的教学管理,能够帮助学员实现从零到一的技术蜕变,毕业学员平均就业薪资接近12000元,就业数据就是我们教学水平最好的反馈,专业靠谱的培训机构是每一位C++学习者的最优选!
欢迎光临 菁英数字科技(猩码)-猩码学苑-专注软件开发人才菁英教育 (http://www.xingmaxueyuan.com/) |
Powered by Discuz! X3.4 |