C++ Operator Overloading

一、重载规则

 

I.可以重载的操作符

 

+-*/%
^&|~!
=><+=-=
*=/=%=^=&=
|=>><<>>=<<=
==!=>=<=&&
||++--->*,
->[]()operator newoperator new[]
operator deleteoperator delete []

 

II.不能重载的操作符

 

::..*? :
sizeoftypeidnewdelete
static_castdynamic_castconst_castreinterpret_cast

 

III.基本规则


1.一元操作符可以是不带参数的成员函数[1]或带一个参数的非成员函数[1]
2.二元操作符可以是带一个参数的成员函数[1]或带两个参数的非成员函数[1]
3.operator=、operator[]、operator()、operator->只能定义为成员函数[1]
4.operator->的返回值必须是一个指针或能使用->的对象。
5.重载 operator++ 和 operator-- 时带一个 int 参数表示后缀,不带参数表示前缀。
6.除 operator new 和 operator delete 外,重载的操作符参数中至少要有一个非内建数据类型。
7.x@y 搜索范围为:x 成员函数--> 全局函数/X所在名字空间中的函数/Y所在名字空间中的函数/X的友元函
    数/Y的友元函数。
8.重载的的操作符应尽量模拟操作符对内建类型的行为。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值