转载请注明出处http://blog.csdn.net/enyusmile/article/details/46688035
本章内容包括:
- 本章内容包括:
- 运算符重载
- 友元函数
- 重载<<运算符,以便用于输出
- 状态成员
- 使用rand()生成随机值
- 类的自动转换和强制类型转换
类转换函数
- 学习C++的难点之一是需要记住大量的东西,但在拥有丰富的实践经验之前,根本不可能全部记住这些东西.从这种意义上说,学习C++就像学习功能复杂的字处理程序或电子制表程序一样.任何特性都不可怕,但多数人只掌握了哪些经常使用的特性.
- 正如C++创始人Bjarne Stroustrop在一次C++专业程序员大会上所建议的:”轻松地使用这样语言.不要觉得必须使用所有的特性,不要在第一次学习时就试图使用所有的特性.”
11.1 运算符重载
- 运算符重载是一种形式的C++多态.
- C++允许将运算重载扩展到用户定义的类型.
- 要重载运算符,需使用被称为运算符函数的特殊函数形式.运算符函数的格式如下:operator op(argument list)
11.2 计算时间:一个运算符重载示例
- 程序清单11.1 mytime0.h
- 程序清单11.2 mytime0.cpp
- 警告:不要返回指向局部变量或临时对象的引用.函数执行完毕后,局部变量和临时对象将消失,引用将指向不存在的数据.
- 程序清单11.3 usetime0.cpp
11.2.1 添加加法运算符
- 程序清单11.4 mytime1.cpp
- 程序清单11.5 mytime1.cpp
- 注意:在运算符表示法中,运算符左侧的对象是调用对象,运算符右边的对象是作为参数被传递的对象.
- 程序清单11.6 usetime1.cpp
- 总之,operator+()函数的名称使得可以使用函数表示法或运算符表示法来调用它.
11.2.2 重载限制
- C++对用户定义的运算符重载的限制
- 重载后的运算符必须至少有一个操作数是用户定义的类型,这