C++第六章习题第一题
来源:互联网 发布:mac电源适配器坏了 编辑:程序博客网 时间:2024/06/06 07:52
1.#include <iostream.h>
class Point
{
public:
Point(float x=0,float y=0);
void setPoint(float,float);
float getX() const
{return x;}
float getY() const
{return y;}
friend ostream & operator<<(ostream &output,Point &);
protected:
float x,y;
};
Point::Point(float a,float b)
{
x=a;y=b;
}
void Point::setPoint(float a,float b)
{
x=a;y=b;
}
ostream & operator<<(ostream &output,Point &p)
{
output<<"["<<p.x<<","<<p.y<<"]"<<endl;
return output;
}
class Circle:public Point
{
public:
Circle(float x,float y,float r):Point(x,y),radius(r){}
void setRadius(float r)
{radius=r;}
float getRadius() const
{return radius;}
double area() const
{
return 3.1415*radius*radius;
}
friend ostream & operator<<(ostream &output,Circle &);
protected:
float radius;
};
ostream & operator<<(ostream &output,Circle &c)
{
output<<"Center =["<<c.x<<","<<c.y<<"],r= "<<c.radius<<",area="<<c.area()<<endl;
return output;
}
class Cylinder:public Circle
{
public:
Cylinder(float x,float y,float r,float h):Circle(x,y,r),height(h){}
void setHeight(float h)
{height=h;}
float getHeight() const
{return height;}
double area() const
{
return 2*Circle::area()+2*3.1415*radius*height;
}
double volume() const
{
return 3.1415*radius*radius*height;
}
friend ostream & operator<<(ostream &output,Cylinder &);
protected:
float height;
};
ostream & operator<<(ostream &output,Cylinder &cy)
{
output<<"Center=["<<cy.x<<cy.y<<"],r="<<cy.radius<<",h="<<cy.height<<"\narea="<<cy.area()<<",volume="<<cy.volume()<<endl;
return output;
}
int main()
{
Cylinder cy1(3.5,6.4,5.2,10);
cout<<"original cylinder:\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);
cout<<"\nnew cylinder:\n"<<cy1;
Point &pRef=cy1;
cout<<"\npRef as a point:"<<pRef;
Circle &cRef=cy1;
cout<<"\ncRef as a circle:"<<cRef;
return 0;
}
- C++第六章习题第一题
- C++Primer习题第六章
- C Prime plus 第六章习题
- c++primer plus 第六章习题
- C Primer Plus 第六章部分习题
- c++primer第六章课后习题
- 整理下C++primer plus 第六版第六章习题。
- 第六章第一题
- C和指针 第六章 编程练习 第一题
- C++Primer Plus(第六版) 第十二章 第一题
- C++Primer Plus(第六版) 第十三章 第一题
- C++Primer Plus(第六版) 第十四章 第一题
- C++Primer Plus(第六版) 第十六章 第一题
- 第六章习题汇总
- C++第六章 习题
- python第六章习题
- 第六章习题
- 第六章数组 第一题
- 区分定理(Theorem)、引理(Lemma)、推论(Corollary)等概念
- OC学习--Block
- execute、executeQuery和executeUpdate之间的区别
- 第七章
- leetcode--FlattenBinaryTreetoLinkedList
- C++第六章习题第一题
- iOS --- Objective-C中的内存管理
- Cocos2d-x 3.0坐标系详解
- android ListView几种重要属性
- 为什么选择做硬件而不是吃香的软件?
- Digital Booklet - Taylor Swift Karao-pdf
- 菜鸟学Android笔记(三十四):实现请求转发和请求包含
- The-Swift-Programming-Language-pdf
- iOS游戏框架Sprite Kit基础教程——Swift版上册第二章-pdf