C++关于运算符的重载(一览表)及函数重载!

运算符重载

在这里插入图片描述

函数重载

例题:

2个同名成员函数,可以重载的是()?

正确答案: B C 你的答案: A B D E (错误)
int A::f() 和double A::f()
void A::f(int) 和void A::f(short)
void A::f() 和void A::f() const
void A::f(int) 和void A::f(const int)
const int A::f() 和int A::f()

解答:A.B.E.选项:
不同的返回值不能区分重载函数,只有函数名、形参个数、形参类型可以
C.选项:
常成员函数的const限定符用于修饰隐式第一形参this
this的原类型为
复制代码
Type * const this;
是一个指针常量
成员函数加上const修饰后 this 的类型变为
复制代码
const Type * const this;
是一个指向常量的指针常量
编译器通过这个手段
令常成员函数作用于一个常量对象
实现了常成员函数内不能修改当前对象的数据成员的语言特性
C++规定
重载函数的指针形参
如果要以const进行区分
只有当修饰的const为底层const
而非顶层const时才可以区分
也就是说
const必须修饰指针指向的对象而非指针本身
所以假如this指针是由原类型变为
复制代码
Type * this;
那么是不能区分该参数的
D.选项也是一个很好的顶层const的例子
对于一个普通的非复合类型
其const总是顶层const(修饰本身)
对于一个引用
其const总是底层const(修饰所引用的对象)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值