C++ Primer 第十一章 使用类笔记

运算符重载

以加法为例:函数名 Time Time::operator+(const Time & time) //一个类类相加的重载运算符
调用时:sum = a+b;如果a、b都是Time类,则等价于sum = a.operator+(b)

重载限制:
1.重载后的运算符至少有一个操作数是用户定义的类型。
2.不能创建新运算符
3.重载后的运算符和原来的运算符具有相同的优先级

非静态成员函数后面加const(加到非成员函数或静态成员后面会产生编译错误),表示成员函数隐含传入的this指针为const指针,决定了在该成员函数中,任意修改它所在的类的成员的操作都是不允许的(因为隐含了对this指针的const引用);

其他类型–>对象

任何接受唯一一个参数的构造函数都可被用作转换函数,讲该类型与参数相同的值转化为类。
如String对象的初始化: string a = “a” 等价于 string a(“a”)

转换函数(对象–>其他类型)

operator typename(){}
转换函数使用注意:转换函数必须是类方法 转换函数不能有指定的返回类型 转换函数不能有参数
显式转换: typename(对象名) (typename)对象名
在转换函数定义时在头部加入explicit作用是在调用转换函数的时候必须以显式的方式进行。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值