C面向对象程序设计答案第六章谭浩强清华大学出版社Word格式文档下载.docx
- 文档编号:1450396
- 上传时间:2023-04-30
- 格式:DOCX
- 页数:6
- 大小:10.47KB
C面向对象程序设计答案第六章谭浩强清华大学出版社Word格式文档下载.docx
《C面向对象程序设计答案第六章谭浩强清华大学出版社Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《C面向对象程序设计答案第六章谭浩强清华大学出版社Word格式文档下载.docx(6页珍藏版)》请在冰点文库上搜索。
"
\noriginalcylinder:
\nx="
cy1.getX()<
y="
cy1.getY()<
r="
<
cy1.getRadius()<
h="
cy1.getHeight()<
\narea="
cy1.area()
volume="
cy1.volume()<
endl;
cy1.setHeight(15);
cy1.setRadius(7.5);
cy1.setPoint(5,5);
\nnewcylinder:
\n"
cy1;
Point&
pRef=cy1;
\npRefasapoint:
pRef;
Circle&
cRef=cy1;
\ncRefasaCircle:
cRef;
return0;
}
3:
解法一
classPoint
{public:
Point(floata,floatb):
x(a),y(b){}
~Point(){cout<
executingPointdestructor"
private:
floatx;
floaty;
};
classCircle:
publicPoint
Circle(floata,floatb,floatr):
Point(a,b),radius(r){}
~Circle(){cout<
executingCircledestructor"
floatradius;
{Point*p=newCircle(2.5,1.8,4.5);
deletep;
3:
解法二
Circle(inta,intb,intr):
Circle*pt=newCircle(2.5,1.8,4.5);
deletept;
解法三
virtual~Point(){cout<
Circle(floata,floatb,floatr):
virtual~Circle(){cout<
voidmain()
4:
//定义抽象基类Shape
classShape
virtualdoublearea()const=0;
//纯虚函数
//定义Circle类
publicShape
Circle(doubler):
radius(r){}//结构函数
virtualdoublearea()const{return3.14159*radius*radius;
//定义虚函数
protected:
doubleradius;
//半径
//定义Rectangle类
classRectangle:
Rectangle(doublew,doubleh):
width(w),height(h){}//结构函数
virtualdoublearea()const{returnwidth*height;
}//定义虚函数
doublewidth,height;
//宽与高
classTriangle:
Triangle(doublew,doubleh):
width(w),height(h){}//结构函数
virtualdoublearea()const{return0.5*width*height;
}//定义虚函数
//宽与高
//输出面积的函数
voidprintArea(constShape&
s)
{cout<
s.area()<
}//输出s的面积
{
Circlecircle(12.6);
//建立Circle类对象circle
areaofcircle="
;
printArea(circle);
//输出circle的面积
Rectanglerectangle(4.5,8.4);
//建立Rectangle类对象rectangle
areaofrectangle="
printArea(rectangle);
//输出rectangle的面积
Triangletriangle(4.5,8.4);
//建立Triangle类对象
areaoftriangle="
printArea(triangle);
//输出triangle的面积
5:
//纯虚函数
//定义Circle(圆形)类
//定义Square(正方形)类
classSquare:
Square(doubles):
side(s){}//结构函数
virtualdoublearea()const{returnside*side;
}//定义虚函数
doubleside;
//定义Rectangle(矩形)类
//定义Trapezoid(梯形)类
classTrapezoid:
Trapezoid(doublet,doubleb,doubleh):
top(t),bottom(t),height(h){}//结构函数
virtualdoublearea()const{return0.5*(top+bottom)*height;
}//定义虚函数
doubletop,bottom,height;
//上底、下底与高
//定义Triangle(三角形)类
Squaresquare(3.5);
//建立Square类对象square
Trapezoidtrapezoid(2.0,4.5,3.2);
//建立Trapezoid类对象trapezoid
//建立Triangle类对象
Shape*pt[5]={&
circle,&
square,&
rectangle,&
trapezoid,&
triangle};
//定义基类指针数组pt,使它每一个元素指向一个派生类对象
doubleareas=0.0;
//areas为总面积
for(inti=0;
i<
5;
i++)
{areas=areas+pt[i]->
area();
totolofallareas="
areas<
//输出总面积
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向 对象 程序设计 答案 第六 章谭浩强 清华大学出版社