C++ Primer Plus 第11章

1.C++允许将运算符重载扩展到用户定义的类型

运算符格式一般: type operator op(argument-list)

2.运算符重载的限制:
运算符必须至少有一个操作数是用户定义的类型
不能违反运算符原来的句法规则,如操作数的数量,运算符优先级
不能创建新运算符
不能重载以下运算符:sizeof、.成员运算符、.*成员指针运算符、作用域解析运算符、?:条件运算符、
const_cast;dynamic_cast;reinterpret_cast;static_cast

3.P387总结了那些运算符可以重载和限制

4.友元函数
在类中声明,但不是成员函数,不能使用成员运算符调用;
虽然不是成员函数,但是有相当于成员函数的对类的访问权限

5.通常使用<<运算符重载,要求返回ostream对象
方法:返回值设为 ostream &

6.不能在类外使用friend关键字

7.随机数,可使用rand()函数获取
rand()使用一个初始种子值来获取随机值
使用srand()允许覆盖默认的随机值
time(0)返回当前时间
则调用srand(time(0))就可以了

8.只接受一个参数的构造函数定义了从参数类型到类类型的转换
如Stonewt(double)允许的隐式转换
将Stonewt对象初始化为double
将double值赋给Stonewt对象
将double传递给接受Stonewt参数的函数
返回值被声明为Stonewt的函数试图返回double值

一旦该构造函数加上关键字explicit,不能进行隐式转换,但可以显示转换(强制类型转换)

9.转换函数
将类类型转化为其他类型
operator typeName()

转换函数必须是类的成员函数
不能指定返回值
转换函数不能有参数


11.9编程练习 有时间再做

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值