C++操作符重载(初识)

(因为星期四要讲的课的内容涉及到操作符重载,就将其写成笔记分享,希望能对同学有所帮助。也利于我星期四的讲课。)

如果学习了JAVA再学C++,不难发现:

image.png

图上所示的代码中,用于输出的运算符【<<】看上去就像【按位左移运算符】,这其实就是一个运算符重载的例子,它使同一个运算符有不同的含义。 C语言本身也有一些重载运算符的情况,比如&,它可以是取地址符,也可以是单目‘与’运算符,%可以求余,也可以用来写占位符。即是说,操作符也可以像函数的重载一样,通过重载操作符,来让一个操作符实现多种功能。
【重点一】要重载运算符,需使用被称为运算符重载的特殊函数形式:operator+‘操作符’,操作符必须是有效的C++运算符,不能瞎写一个新的符号,比如说@,C++是没有这个操作符的。
【重点二】编译器将会通过判断运算符操作数的数目和类型来确定运算符的含义。
比如说‘ ’左右边都是数字,那个‘’就表示乘号,如果是 this,那这个‘’就是用来得到存储在这个地址的值。
【重点三】并不是所有有效的C++运算符都可以重载
C++操作符重载(初识)_第1张图片
image.png

群上潘祯之前发过一个关于map的问题,其中java老师就怀疑对map的赋值方法出现了错误,实际上是没有错误的,原因就是因为可能C++中对于map类型的定义,事先就对‘=’等运算符进行了重载,而不必像Java那样要调用add之类的函数才能对map进行键值对赋值。
同样的,C++里面对[]之类的操作符也进行重载,操作符的重载在C++无处不在,要想学好C++,能够自如运用操作符重载功能的必要的。
操作符重载是个强大的功能,是语言多态的一种体现,它类似于函数,它可以把很多函数秘密封装在里面,尽管外面看起来仅仅是一个符号。对于操作符重载进一步的了解,还需要更加深入的学习。

你可能感兴趣的:(C++操作符重载(初识))