《类的习题课》PPT课件.ppt_第1页
《类的习题课》PPT课件.ppt_第2页
《类的习题课》PPT课件.ppt_第3页
《类的习题课》PPT课件.ppt_第4页
《类的习题课》PPT课件.ppt_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

习题课 北理工珠海学院计算机学院夏力前 2020 3 31 北理珠海学院计算机学院 2 include includeclassSample public intx y Sample x y 0 Sample inta intb x a y b voiddisp cout x x y y endl 题1 分析以下程序执行的结果 2020 3 31 北理珠海学院计算机学院 3 voidmain Samples1 2 3 s1 disp 解 本题说明了重载构造函数的定义方法 首先定义了一个类Sample 在main 中定义了它的一个对象 定义s1对象时调用其重载构造函数 x 2 y 3 然后 调用其成员函数输出数据成员 所以输出为 x 2 y 3 2020 3 31 北理珠海学院计算机学院 4 includeclassSample intx y public Sample x y 0 Sample inta intb x a y b Sample if x y cout x y endl elsecout x y endl voiddisp cout x x y y endl 题2 分析以下程序的执行结果 2020 3 31 北理珠海学院计算机学院 5 voidmain Samples1 2 3 s1 disp 解 本题说明了析构函数的定义方法 首先定义了一个类Sample 在main 中定义了它的一个对象 定义s1对象时调用其重载构造函数 x 2 y 3 然后 调用其成员函数输出数据成员 最后在退出程序时自动调用析构函数 所以输出为 x 2 y 3x y 2020 3 31 北理珠海学院计算机学院 6 题4分析以下程序的执行结果 includeclassSample intx y public Sample x y 0 Sample inta intb x a y b voiddisp coutdisp 解 本题说明了对象指针的使用方法 这里通过指向对象的指针来调用对象的成员函数 对象指针p指向对象s p disp 等价于s disp 所以输出为 x 2 y 3 2020 3 31 北理珠海学院计算机学院 7 题5分析以下程序的执行结果 includeclassSample public intx inty voiddisp cout x x y y endl voidmain intSample pc Samples pc 2020 3 31 北理珠海学院计算机学院 8 解 本题说明了类数据成员指针的使用方法 在main 中定义的pc是一个指向Sample类数据成员的指针 执行pc Sample x时 pc指向数据成员x 语句s pc 10等价于s x 10 为了保证该语句正确执行 Sample类中的x必须是公共成员 执行pc Sample y时 pc指向数据成员y 语句s pc 20等价于s y 20 同样 Sample类中的y必须是公共成员 所以输出为 x 10 y 20 2020 3 31 北理珠海学院计算机学院 9 题6下面是一个类的测试程序 设计出能使用如下测试程序的类 voidmain Testa a init 68 55 a print 其执行结果为 测试结果 68 55 13 2020 3 31 北理珠海学院计算机学院 10 includeclassTest intx y public voidinit int int voidprint voidTest init inti intj x i y j voidTest print cout 测试结果 x y x y endl 2020 3 31 北理珠海学院计算机学院 11 题7 分析以下程序的执行结果 includeclassSample public Sample Sample int Sample voiddisplay protected intx Sample Sample x 0 cout constructingnormally n Sample Sample intm x m cout constructingwithanumber x endl voidSample display cout displayanumber x endl Sample Sample cout destructing n 2020 3 31 北理珠海学院计算机学院 12 voidmain Sampleobj1 Sampleobj2 20 obj1 display obj2 display 解 本题构造函数与析构函数的调用顺序 这里定义了两个对象 先顺序调用obj1和obj2对象的构造函数 再调用各自的成员函数disp 最后顺序调用obj2和obj1的析构函数 所以输出为 constructingnomallyconstructingwithanumber 20displayanumber 0displayanumber 20destructingdestructing 2020 3 31 北理珠海学院计算机学院 13 includeclassSample intn staticintsum public Sample intx n x voidadd sum n voiddisp cout n n sum sum endl intSample sum 0 静态数据成员赋初值 题8 分析以下程序的执行结果 2020 3 31 北理珠海学院计算机学院 14 voidmain Samplea 2 b 3 c 5 a add a disp b add b disp c add c disp 解 本题说明静态数据成员的使用方法 在类中定义了一个静态数据成员sum 在main 之前给它赋初值0 然后在main 中定义了三个对象 并执行各自的add 和disp 方法 所以输出为 n 2 sum 2n 3 sum 5n 5 sum 10 2020 3 31 北理珠海学院计算机学院 15 includeclassSample intA staticintB public Sample inta A a B a staticvoidfunc Samples voidSample func Samples cout A s A B B endl intSample B 0 voidmain Samples1 2 s2 5 Sample func s1 Sample func s2 题9 分析以下程序的执行结果 解 本题说明了静态成员函数的使用方法 其中的数据成员B是静态数据成员 求B之值是在构造函数中进行的 所以输出为 A 2 B 7A 5 B 7 2020 3 31 北理珠海学院计算机学院 16 includeclassSample intx y public Sample x y 0 Sample inta intb x a y b voiddisp cout x x y y endl 题10 分析以下程序的执行结果 voidmain Samples1 s2 1 2 s3 10 20 Sample Pa 3 Pa 0 2020 3 31 北理珠海学院计算机学院 17 解 本题说明对象指针数组的赋值方法 定义三个对象和一个对象指针数组 通过赋值语句使后者的元素分别指向前面的三个对象 而不是采用上题的赋初值方法 然后使用for语句循环调用各个对象的disp 成员函数 所以输出为 x 0 y 0 x 1 y 2x 10 y 20 2020 3 31 北理珠海学院计算机学院 18 includevoidmain inta 10 20 30 40 pa a int 题11 分析以下程序的执行结果 解 pa为数组的指针 首先指向a 0 pb是pa的引用 当执行pb 时 也使pa指向了a 1 所以输出为 20 2020 3 31 北理珠海学院计算机学院 19 includeclassSample intx public Sample Sample inta x a Sample Sample 题12 分析以下程序的执行结果 解 Sample类的Sample Sample a 构造函数是一个拷贝构造函数 将a对象的x增1然后加上10后赋给当

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论