第十二课 操作符重载

1.使用C++标准库

(1)C++标准库并不是C++语言的一部分

(2)C++标准库是由C++语言编写而成的类库和函数的集合

(3)C++标准库中定义的类和对象都位于std命名空间中

(4)C++标准库的头文件都不带.h后缀

(5)C++标准库涵盖了C库的功能

——C库中<name.h>头文件对应C++中的<cname>



2.C++标准库预定义了多数常用的数据结构,如:字符串,链表,队列,栈等

第十二课 操作符重载

第十二课 操作符重载

C++做了什么?

(1)左移运算符<<和右移运算符>>,在C语言中只能用于整数运算,并且语义是确定不变的

C++是怎么改变左移运算符和右移运算符的语义的?



3.操作符重载为操作符提供不同的语义

第十二课 操作符重载

编译不能通过!!!


可以定义一个add函数用于两个Complex的相加

第十二课 操作符重载

add函数可以解决Complex变量相加的问题,但是Complex是现实世界中确实存在的复数,并且复数在数学中的地位和普通的实数相同。



4.C++中操作符重载的本质

(1)C++中通过operator关键字可以利用函数扩展操作符

(2)operator的本质是通过函数重载实现操作符重载

第十二课 操作符重载

第十二课 操作符重载



5.C++中的类的友元

(1)private声明使得类的成员不能被外界访问

(2)但是通过friend关键字可以例外的开放权限

第十二课 操作符重载