c++之重载函数(一)

xiaoxiao2021-02-28  124

(一)概念:什么是重载

1 所谓重载,就是重新赋予新的含义。函数重载就是对一个已有的函数赋予新的含义,使之实现新功能,因此,一个函数名就可以用来代表不同功能的函数,也就是”一名多用”。(运算符重载的本质是一个函数)

2 运算符重载的限制:

只需记住下面几个特殊的运算符不能重载即可:  1 .(点) 2.::(域解析符) 3   .*(对象选择符) 4  ?:(条件运算符) 5. sizeof

重载运算符函数可以对运算符做出新的解释,但原有语义基本不变:

(1)重载不能改变运算符的优先级和结合性

(2)不改变运算符所需要的操作数

(3)不能创建新的运算符

(二)运算符重载实现的俩种方法:

1.成员函数  2.友元函数(全局函数实现)

1)运算符函数可以重载为成员函数和友元函数

2)关键区别在于成员函数有this指针, 而友元函数没有this指针。

3)不管是成员函数,还是友元函数,运算符的使用方法相同,但参数传递的方式,实现代码不同,应用场合也不同

4)如果俩个参数,左操作数在类的内部无法实现时,只能声明为友元函数实现(全局函数)

3二元运算符

//通过类成员函数完成-操作符重载 //函数声明 Complex operator-(Complex &c2) //函数调用分析 //用类成员函数实现-运算符重载 Complex c4 = c1 - c2; c4.printCom(); //c1.operator-(c2);

4一元运算符

5前置和后置++总结:

6.全局函数、类成员函数方法实现运算符重载步骤:       1)要承认操作符重载是一个函数,写出函数名称operator+ ()        2)根据操作数,写出函数参数        3)根据业务,完善函数返回值(看函数是返回引用 还是指针 元素),及实现函数业务

7.成员函数与友元函数选择方法:

      1)当无法修改左操作数的类时,使用全局函数进行重载       2) =, [], ()和->操作符只能通过成员函数进行重载

(三)总结

1.操作符重载是C++的强大特性之一 2.操作符重载的本质是通过函数扩展操作符的语义 3.operator关键字是操作符重载的关键 4.friend关键字可以对函数或类开发访问权限 5.操作符重载遵循函数重载的规则 6.操作符重载可以直接使用类的成员函数实现 7.=, [], ()和->操作符只能通过成员函数进行重载 8.++操作符通过一个int参数进行前置与后置的重载 9.C++中不要重载&&和||操作符

转载请注明原文地址: https://www.6miu.com/read-44454.html

最新回复(0)