C++面向对象程序设计第六章课后习题答案_第1页
C++面向对象程序设计第六章课后习题答案_第2页
C++面向对象程序设计第六章课后习题答案_第3页
C++面向对象程序设计第六章课后习题答案_第4页
C++面向对象程序设计第六章课后习题答案_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

1、第六章课后习题答案(第二版谭浩强)1:/xt6-1/cpp#include<iostream>/如用VC+应改为:#include<iosttram.h>usingnamespacestd;/如用VC+5取消此行#include"cylinder.h"#include"point.cpp"#include"circle.cpp"#include"cylinder.cpp"intmain()Cylindercy1(3.5,6.4,5.2,10);cout<<"norigi

2、nalcylinder:nx="<<cy1.getX()<<",y="<<cy1.getY()<<",r="<<cy1.getRadius()<<",h="<<cy1.getHeight()<<"narea="<<cy1.area()<<",volume="<<cy1.volume()<<endl;cy1.setHeight(15);cy1.s

3、etRadius(7.5);cy1.setPoint(5,5);cout<<"nnewcylinder:n"<<cy1;Point&pRef=cy1;cout<<"npRefasapoint:"<<pRef;Circle&cRef=cy1;cout<<"ncRefasaCircle:"<<cRef;return0;3:解法一#include<iostream>usingnamespacestd;classPointpublic:Poin

4、t(floata,floatb):x(a),y(b)Point()cout<<"executingPointdestructor"<<endl;private:floatx;floaty;classCircle:publicPointpublic:Circle(floata,floatb,floatr):Point(a,b),radius(r)Circle()cout<<"executingCircledestructor"<<endl;private:floatradius;intmain()Point*

5、p=newCircle(2.5,1.8,4.5);deletep;return0;3:解法二#include<iostream>usingnamespacestd;classPointpublic:Point(floata,floatb):x(a),y(b)Point()cout<<"executingPointdestructor"<<endl;private:floatx;floaty;classCircle:publicPointpublic:Circle(inta,intb,intr):Point(a,b),radius(r)Ci

6、rcle()cout<<"executingCircledestructor"<<endl;private:floatradius;intmain()Point*p=newCircle(2.5,1.8,4.5);Circle*pt=newCircle(2.5,1.8,4.5);deletept;return0;3:解法三#include<iostream>usingnamespacestd;classPointpublic:Point(floata,floatb):x(a),y(b)virtualPoint()cout<<&q

7、uot;executingPointdestructor"<<endl;private:floatx;floaty;classCircle:publicPointpublic:Circle(floata,floatb,floatr):Point(a,b),radius(r)destructor"<<endl;virtualCircle()cout<<"executingCircleprivate:floatradius;voidmain()Point*p=newCircle(2.5,1.8,4.5);deletep;4:#inc

8、lude<iostream>usingnamespacestd;/定义抽象基类ShapeclassShapepublic:virtualdoublearea()const=0;/纯虚函数;/定义Circle类classCircle:publicShapepublic:Circle(doubler):radius(r)/结构函数virtualdoublearea()constreturn3.14159*radius*radius;/定义虚函数protected:doubleradius;/半径;/定义Rectangle类classRectangle:publicShapepublic

9、:Rectangle(doublew,doubleh):width(w),height(h)/结构函数virtualdoublearea()constreturnwidth*height;/定义虚函数protected:doublewidth,height;/宽与高;classTriangle:publicShapepublic:Triangle(doublew,doubleh):width(w),height(h)/结构函数virtualdoublearea()constreturn0.5*width*height;/定义虚函数protected:doublewidth,height;/宽与

10、高;/输出面积的函数voidprintArea(constShape&s)cout<<s.area()<<endl;/输出s的面积intmain()Circlecircle(12.6);/建立Circle类对象circlecout<<"areaofcircle="printArea(circle);/输出circle的面积Rectanglerectangle(4.5,8.4);/建立Rectangle类对象rectanglecout<<"areaofrectangle="printArea(rect

11、angle);/输出rectangle的面积Triangletriangle(4.5,8.4);/建立Triangle类对象cout<<"areaoftriangle="printArea(triangle);/输出 triangle 的面积return0;5:#include<iostream>usingnamespacestd;/定义抽象基类ShapeclassShapepublic:virtualdoublearea()const=0;/纯虚函数;/定义Circle(圆形)类classCircle:publicShaper):radius(r)

12、public:Circle(double/结构函数virtualdoublearea()constreturn3.14159*radius*radius;/定义虚函数protected:doubleradius;/半径;/定义Square(正方形)类classSquare:publicShapepublic:Square(doubles):side(s)/结构函数virtualdoublearea()constreturnside*side;/定义虚函数protected:doubleside;/定义Rectangle(矩形)类classRectangle:publicShapepublic:

13、Rectangle(double/结构函数w,doubleh):width(w),height(h)virtualdoublearea()constreturnwidth*height;/定义虚函数protected:double/宽与高;/定义Trapezoid(梯形)类classTrapezoid:publicShapepublic:Trapezoid(doubleh):top(t),bottom(t),height(h)/t,double结构函数width,height;b,doublevirtualdouble0.5*(top+bottom)*height;/area()const定义

14、虚函数returnprotected:doubletop,bottom,height;/上底、下底与高;/定义Triangle(三角形)类classTriangle:publicShapepublic:Triangle(doublew,doubleh):width(w),height(h)/结构函数virtualdoublearea()constreturn0.5*width*height;/定义虚函数protected:doublewidth,height;/宽与高;intmain()Circlecircle(12.6);/建立Circle类对象circleSquare/建立Square类对象squaresquare(3.5);Rectanglerectangle(4.5,8.4);/建立Rectangle类对象rectangleTrapezoidtrapezoid(2.0,4.5,3.2);/建立Trapezoid类对象trapezoidTriangletriangle(4.5,8.4);/建立Triangle类对象Shape*pt5=&circle,&square,&rectangle,&trapezoid,&t

温馨提示

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

评论

0/150

提交评论