c++之重载函数(一)

来源:互联网 发布:远程协助软件 编辑:程序博客网 时间:2024/06/06 00:33

(一)概念:什么是重载

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++中不要重载&&和||操作符

阅读全文
1 0
原创粉丝点击