C++程序设计语言--第十一章:运算符重载

1、运算符函数

运算符函数的名字是由关键字operator后跟对应的运算符构成。

二元运算符可以定义为取一个参数的非静态成员函数,也可以定义为去两个参数的非成员函数。

一个运算符函数必须或者是一个成员函数,或者至少有一个用户定义类型的参数。

不存在运算符屏蔽,这就保证了内部运算符可以用,并且为运算符定义新的意义时,不用修改原有的类的声明。

复制构造函数采用的引用参数。被用在初始化变量,参数传递和值返回。

2、构造函数不能刻画:

从用户定义类型到内部类型的转换,因为内部类型不是类

从新类型到某个已有类型的转换,而不去修改那个已有类的声明。

3、友元

成员函数只能通过类对象访问,隐式转换不会被用于非const的引用参数。

某个运算的所有运算对象都允许隐式类型转换,采用const引用参数或非引用参数,可以选择友元函数。

4、基本运算符

赋值和初始化是不同的操作。

通过将构造函数声明为explicit(显示)的方式就可以抑制隐式转换。

5、下标【】

函数operator[ ]可以用于为类的对象定义下标运算的意义。

6、函数调用

记法形式expression(expression-list),是一种二元运算,其中expression作为左运算对象,而expression-list作为右运算对象。


operator()中()的参数列表将被求值。必须作为成员函数。

7、间接

间接运算符->可以被定义为一个一元的运算符。

可以在通过类对象间接访问类成员的对象。

可以看成是c++里提供的一种受限的,但也非常重要的委托机制。





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值