- 1、本文档共55页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
7.1 结构体的定义及引用 7.2 结构体变量的定义和初始化 7.3 结构体变量的访问 7.4 结构体数组与程序举例 7.6 结构与链表 7.6 结构与链表 7.6 结构与链表 7.7 结构与操作符重载 7.7.1 函数实现 7.7.2 操作符重载函数实现 7.7.2 操作符重载函数实现 7.7.3 输入输出重载实现 7.7.3 输入输出重载实现 7.7.3 输入输出重载实现 7.8 联合(共用体) 7.8.3 使用联合举例 §9.4 位段 §9.6 枚举类型 §9.7 类型标识符的自定义 本章作业 ??void FranSimp(Fran x) {int m,n,r; m=x.nu;n=x.de; r=m%n; While(r!=0) {m=n;n=r;r=m%n;}//求最大公约数 if(n!=1) {x.nu/=n;x.de/=n;}//化简 if(x.de0) {x.nu=-x.nu;x.de=-x.de;}//分母为负处理 } Eg906.cpp Fran FranAdd(const Fran a,const Fran b) {Fran c; c.nu=a.nu*b.de+b.nu*a.de; c.de=a.de*b.de; FranSimp(c) ;//对结果进行简化处理。 Return c; } 函数调用: C=FranAdd(a,b); 思考:判断两个分数是否相等。 写出函数重载运算符 程序举例:P215 ?双目操作符重载函数的定义格式: 返回类型 operator双目操作符(参数说明1,参数说明2) 调用:参数1 双目操作符 参数2 Eg906.cpp Fran operator+(const Fran a,const Fran b) {Fran c; c.nu=a.nu*b.de+b.nu*a.de; c.de=a.de*b.de; FranSimp(c) ;//对结果进行简化处理。 Return c; } 欲将上述运算写成:c=a+b,如何实现。 使用操作符重载函数operater 调用:c=a+b; Eg906.cpp Fran operator--(const Fran x,int) { Fran y=x; x.nu+=x.de; Return y; //使x加1,返回x的原值 } 单目操作符重载函数的定义格式: 返回类型 operator单目操作符(参数1) 调用:单目操作符 参数2 例: ++x 例:x++ ? Fran operator++(const Fran x) { x.nu+=x.de; Returnx; //x先加1,返回x的引用 } ??void FranInput(Fran x) {char ch; Cinx.nuchx.de; if(x.de==0) {Cerr“除数为0”endl; Exit(1); } } Eg906.cpp 1.用函数实现结构数据类型的输入输出 思考:写出输出函数,并实现对负数、分子为0的处理。 istream operator(istream istr,Fran x) {char ch; istrx.nuchx.de; if(x.de==0) {Cerr“除数为0”endl; exit(1); } return istr; } Eg906.cpp 2.重载运算符 左操作数是标准输入流类型istream对象,如cin 右操作数是自定义结构类型变量: ostream operator(ostream ostr,Fran x) {char ch; ostrx.nu‘/’x.deendl; return ostr; } Eg906.cpp 3.重载运算符 左操作数是标准输出流类型ostream对象,如cout 右操作数是自定义结构类型变量: 例1主函数:P218 例2:P219 有时候需要将几种不同类型的变量存放到同一段内存单元中。 2000 i ch f 可以把一个整型变量、一个字符型变量、一个实型变量放在同一个地址开始的内存单元中。即使几个不同的变量共占同一段内存空间。 所谓“共用体(union)”是指使几个不同的变量共占同一段内存的数据类型。 7.8.1 共用体的定义 1、先定义共用体类型标识符,再定义变量 union 共用体类型标识符 { 类型标识符1 成员名1; 类型标识符2 成员名2; …… …… 类型标识符n 成员名n; }; union 共用体类型标识符 变量名表; union data { int i; char ch; float f; }; union data a, b, c; 2、直接定义共用
文档评论(0)