运算符重载

运算符重载
operatorX () //X为重载的运算符
operator++() //前自增
operator++(int) //后自增
运算符重载限制
1.必须至少有一个操作数是用户定义的类型,这将防止用户为标准类型重载运算符
2.不能违反运算符原来的句法规则,即不能改变操作数数量,不能改变优先级
3.不能创建新运算符
4.不能重载下面的运算符
sizeof 运算符
. 取成员运算符
.* 成员指针运算符
:: 作用域解析运算符
?: 条件运算符
typeid RTTI运算符
const_cast 强制类型转换运算符
dynamic_cast 强制类型转换运算符
reinterpret_cast 强制类型转换运算符
static_cast 强制类型转换运算符
5.下面的运算符只能通过成员函数进行重载
= 赋值运算符
() 函数调用运算符
[] 下标运算符
-> 通过指针访问类成员的运算符
附.成员与非成员函数都可进行重载的运算符见图片







函数重载解析
多个函数完全匹配时
1.指向非const 数据的指针和引用 优先于 const 指针和引用参数匹配 (只适用于指针和引用,否则会出现二义性错误)
2.非模板函数 优先于 模板函数
3.若都为模板函数,较具体的模板函数优先,即显式具体化将优于隐式具体化,转换次数少的优于次数多的


调用时加<type> 将告诉编译器应选模板函数
例.
Swap<int>(a,b);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值