【摘要】 小编整理了2020年全国计算机二级C++复习知识点:典范运算符的重载(的相关内容,下面一起来看看2020年全国计算机二级C++复习知识点:典范运算符的重载(的具体内容吧,希望能够帮助到大家!
2020年全国计算机二级C++复习知识点:典范运算符的重载(二)
2020年全国计算机二级C++复习知识点:典范运算符的重载(二)
1、重载增1运算符++
++既可以是前缀运算符(前增1),又可以是后缀运算符(后增1)。为了区分这两种情况,重载这两个运算符时必须在格式上有所区别:重载后缀++时必须多一个虚拟参数:int,因此从形式上看像是一个二元运算符重载。
2、重载类型转换符long
类型转换符必须作为成员函数重载。在重载类型转换符时,由于运算符本身已经表示出返回值类型,因此不需要返回值类型的声明。一个分数可以看成是由一个整数部分和一个纯分数部分组成的,为了取得一个分数的整数部分,可为fraction重载类型转换符long。为此可在fraction.h的类声明中增加:
opertatorlong()const{returnnum/den;}
3、重载赋值运算符=
赋值运算符只能作为成员函数重载。
常见的真正需要重载赋值运算符的情况是:类中包含指向报考空间的指针
赋值运算符=的重载应注意以下几点:
①返回值声明为引用,而函数体中总是用语句return*this;返回;
②如果参数被声明为指向同类对象的引用或指针,应判别所指向对象的是否与被赋值对象为同一对象,如果是,立即返回,不做任何赋值处理;
③如果被赋值对象占用了报考空间或其他资源,应首先释放这些资源,以便接收新的资源;
④如果参数被声明为指针或引用,通常应加上const修饰;
⑤如果参数被声明为指针,应判别是否为空,以便做出特殊处理;
⑥一个类如果需要重载运算符=,通常也就需要定义自己特有的拷贝构造函数,反之亦然。
4、重载复合赋值运算符+=
重载复合赋值类运算符,如+=、-=等,也应遵循上述重载赋值运算符的注意事项。
与赋值运算符不同的是,复合赋值类运算符既可作为成员函数重载也可作为非成员函数重载。在后一种情况下,两个操作数都必须出现在参数表中;为了保持运算符原有的特性,参数应当声明为引用(否则就无法改变它的值),返回值也应当像重载=那样声明为引用,并在后将获得新值的参数返回。
5、重载关系操作符>
重载的关系操作符函数应返回逻辑值。对于fraction的两个对象,可以通过比较通分后的两个分子来确定它们的大小。为此,可在fraction.h的类声明中增加如下的成员函数声明:
booloperator>(fractionf){returnnum*f.den>f.num*den;}
其他关系运算符可以参照重载。
6、重载下标访问运算符[]
运算符[]只能作为成员函数重载。
以上就是2020年全国计算机二级C++复习知识点:典范运算符的重载(的内容,更多资讯请及时关注考必过网站,小编会第一时间发布考试最新消息,大家考试加油!