- 1、本文档共36页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
* * * * * * * * * * string类 字符串对象的定义、初始化和赋值 输入和输出 运算 下标运算 运算符重载 string str1 = “C++”; string str2; str2 = “Programming”; string str3(“Language”); string str4 = str1; cinstr4; coutstr4; str1[0] = ‘c’; * string类 运算 加法运算(连接) 关系运算 字符串数组 运算符重载 string str6; str6 = str1 + “ ”; str6 += str2; if (str6 str1) coutstr1; else coutstr6; string strarr[5] = {“abc”, “def”}; * 小结 运算符重载的意义是使系统已有的运算符对用户自定义的数据类型进行操作。 运算符重载的实质就是运算符函数的重载。 在类中采用两种方法对运算符进行重载: 重载为类的成员函数 重载为类的友元函数 重载为类的成员函数时,引用对象本身是一个操作数,且在双目运算符的左边。 一般双目运算符的重载用友元函数,单目运算符的重载用成员函数。 运算符重载 * 小结 大部分C++运算符可以被重载,但是不能增加新的运算符,重载也不会改变运算符的优先级和结合性,也不会改变使用运算符的语法和参数个数。 C++的标准库中提供了一个string类,定义了丰富的成员函数和运算符,用来对字符串进行操作。 运算符重载 * 基本练习 类设计、定义和运算符重载练习 问题 定义一个类MyTime,表示以秒为基本单位的时间量 定义并实现具有以下操作 定义插入运算符的重载函数,实现通过cout直接输出时间量 以“xx时xx分xx秒”的格式输出 定义提取运算符的重载函数,实现通过cin直接输入时间量 定义自增运算符++的重载函数,实现以秒为单位增长 前缀和后缀形式都可以使用 定义加法运算符+的重载函数,实现计算两个时间量的和 实现时间量与整数(单位为秒)直接进行加法运算 运算符重载 * 扩展练习 创建自己的类库 把常用的自定义类型(类)集中。 隐藏实现的细节。 内容 创建一个工具库MyUtility,包含Complex和MyTime类 在VC中创建一个静态库工程(Win32 Static Library) 把Complex和MyTime类的.h和.cpp文件添加到该工程 编译、链接后得到MyUtility.lib库文件 该工具库的发布文件包括2个头文件和1个库文件 创建一个测试工程TestMyUtility,分别对输入的5个复数和时间值求和,并输出结果。 运算符重载 * * * * * * * * * * * * * * * * * * * * * * * * * * 2008年02月 张华 武汉大学 张 华 第五讲 运算符重载 * 第五讲 运算符重载 运算符重载的概念 运算符重载的方法 运算符重载的规则 常用的运算符重载 不同类型数据间的类型转换 标准库中的string类 C++语言程序设计 * 引例 案例分析 定义表示复数的类Complex,包括完成两个复数相加的成员函数Add。 运算符重载 #include iostream.h class Complex { private: double r; //实部 double i; //虚部 public: Complex(double x=0.0, double y=0.0) { r = x; i = y; } Complex Add(const Complex c); void Print(); }; * 引例 案例分析 续 运算符重载 Complex Complex::Add(const Complex c) { Complex t; t.r = r + c.r; t.i = i + c.i; return t; } void Complex::Print() { cout(r, i“i)endl; } * 引例 案例分析 续 运算符重载 void main() { Complex a(3.0, 4.0), b(10.5, 20.5), c; c = a.Add(b); c.Print(); } 能不能实现同样的功能,但写成:a+b 把运算符+看成一个函数,两个加数是函数的参数,对该函数进行重载,使得+可以用于用户自定义的类型。 * 运算符重载 运算符重载现象举例 + 运算符可以用于char、int、float、double类型的数据 ‘A’ + 2 32 + 69 45.67 +
文档评论(0)