第六章
来源:互联网 发布:守望先锋设置优化fps 编辑:程序博客网 时间:2024/04/28 14:09
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; }3.(1) #include <iostream> using namespace std; class Point { public: Point(float a,float b):x(a),y(b){} ~Point(){cout<<"executing Point destructor"<<endl;} private: float x; float y; }; class Circle:public Point { public: Circle(float a,float b,float r):Point(a,b),radius(r){} ~Circle(){cout<<"executing Circle destructor"<<endl;} private: float radius; }; int main() { Point *p=new Circle(1,2,3); delete p; return 0; }(2)#include <iostream> using namespace std; class Point { public: Point(float a,float b):x(a),y(b){} ~Point(){cout<<"executing Point destructor"<<endl;} private: float x; float y; }; class Circle:public Point { public: Circle(float a,float b,float r):Point(a,b),radius(r){} ~Circle(){cout<<"executing Circle destructor"<<endl;} private: float radius; }; int main() { Point *p=new Circle(1,2,3); Circle *r=new Circle(1,2,3); delete r; return 0; }(3) #include <iostream> using namespace std; class Point { public: Point(float a,float b):x(a),y(b){} virtual ~Point(){cout<<"executing Point destructor"<<endl;} private: float x; float y; }; class Circle:public Point { public: Circle(float a,float b,float r):Point(a,b),radius(r){} ~Circle(){cout<<"executing Circle destructor"<<endl;} private: float radius; }; int main() { Point *p=new Circle(1,2,3); delete p; return 0; }4. #include <iostream.h> class Shape{ public: virtual double area()const =0; }; class Circle:public Shape { public: Circle(double r):radius(r){} virtual double area() const { return 3.1415*radius*radius; } protected: double radius; }; class Rectangle :public Shape{ public: Rectangle(double l,double w):length(l),width(w){} virtual double area()const { return length*width; } protected: double length; double width; }; class Triangle:public Shape { public: Triangle(double d,double h):dibian(d),height(h){} virtual double area() const { return 0.5*dibian*height; } protected: double dibian; double height; }; void display(const Shape &s) { cout<<s.area()<<endl; } int main() { Circle c(4); cout<<"area of c is "; display(c); Rectangle r(2,4); cout<<"area of r is "; display(r); Triangle t(1,2); cout<<"area of t is "; display(t); return 0; }5. #include <iostream.h> class Shape{ public: virtual double area()const =0; }; class Circle:public Shape { public: Circle(double r):radius(r){} virtual double area() const { return 3.1415*radius*radius; } protected: double radius; }; class Rectangle :public Shape{ public: Rectangle(double l,double w):length(l),width(w){} virtual double area()const { return length*width; } protected: double length; double width; }; class Triangle:public Shape { public: Triangle(double d,double h):dibian(d),height(h){} virtual double area() const { return 0.5*dibian*height; } protected: double dibian; double height; }; class Square:public Shape{ public: Square(double s):side(s){} virtual double area() const { return side*side; } protected: double side; }; class Trapezoid:public Shape { public: Trapezoid(double t,double b,double h):top(t),bottem(b),height(h){} virtual double area() const { return 0.5*(top+bottem)*height; } protected: double top,bottem,height; }; void display(const Shape &s) { cout<<s.area()<<endl; } int main() { Circle c(4); Rectangle r(2,4); Triangle t(1,2); Square s(2); Trapezoid tt(1,2,3); Shape *p[5]={&c,&r,&t,&s,&tt}; double area=0.0; for(int i=0;i<5;i++) { area=area+p[i]->area(); } cout<<"the sum of area is "<<area<<endl; return 0; }
0 0
- 第六章第六题
- 第六章
- 第六章
- 第六章
- 第六章
- 第六章
- 第六章
- 第六章
- 第六章
- 第六章
- 第六章
- 第六章
- 第六章
- 第六章
- 第六章
- 第六章
- 第六章
- 第六章
- list is passed by reference in python!!!
- 计算机视觉和机器学习领域中顶级会议的重要性
- 简单的几个shell脚本七
- 翔特卡洛和解题报告
- The type java.lang.Object cannot be resolved
- 第六章
- 引起C运行时错误R6034的原因和解决方法
- 采集 抓取 淘宝商品资料 无需API 无需申请appkey
- 使用数组来模拟邻接表存储图信息
- MySQL中count()函数的使用
- MFC CListCtrl 数据库内容显示相关
- 第三章第42题
- 数据库三大范式
- 队列