当前位置: 首页 > 科技观察

C++运算符重载零基础教程,掌握四点助你掌握运算符重载

时间:2023-03-11 23:19:17 科技观察

前言本章主要讲解运算符重载。运算符重载是使运算符能够对自定义类型进行操作的能力。C++运算符重载主要分为以下三类:类成员函数重载友元函数重载流运算符重载类重载重载的运算符是具有特殊名称的函数。重载运算符符号。与其他函数一样,重载运算符具有返回类型和参数列表。实现对象与对象相加的测试代码如下:对于上面的重载:firstScore+secondScore一般解析为firstScore.operator+(secondScore)。operator+是函数名,对象调用成员函数的方式解决了对象与对象的相加。所以类重载函数的参数个数比运算符的实际操作数少1。友元重载友元重载意味着重载的函数是一个友元函数。判断两个美女哪个分数高的测试代码如下:在上面的代码中,我们真正要比较的是两个美女各自的分数。对于Liu>Di重载函数的解析过程是operator>(Liu,DI);operator>是函数名,所以重载友元的参数个数等于运算符的操作数。流重载流操作符的重载只能用友元的方式,而流对象作为参数时,必须用引用(&)的方式,所以这里我单独归为一类.具体示例代码如下:特殊重载pre++or--andpost++and--重载,类重载时,不遵循上述情况,通常我们会取一个int标识参数作为post++或--的重载,如下代码:从这里来看,其实前置比后置快的原因一目了然,隐藏了一个对象的创建过程。重载注意事项C++通常用于重载一元运算符作为类的成员函数,双目运算符用于重载友元函数。需要注意的是,有些运算符不能重载,有些运算符只能重载类成员函数:=,(),[],->只能作为类成员函数重载.,.*,::,?:不能重载C++重载运算符时,至少有一个数据是自定义类型,这是重载的前提条件,切记。