第六章第一题(其余类似上次派生继承题)

来源:互联网 发布:开淘宝用什么软件好 编辑:程序博客网 时间:2024/06/05 04:20
Zhixin.cpp:#include<iostream>#include"Cylinder.h"using namespace std;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 << "\n new cylinder : \n " << cy1;Point & pRef = cy1;cout << "\n nRef as a Point: " << pRef;Circle & cRef = cy1;cout << "\n cRef as a Circle: " << cRef;return 0;}Point.cpp:#include<iostream>#include"Point.h"using namespace std;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 , const Point&p){output << "[" << p.x << "," << p.y << "]" << endl;return output;}Circle.cpp:#include<iostream>#include"Circle.h"using namespace std;Circle::Circle(float a, float b , float r): Point(a , b) ,radius(r){}void Circle::setRadius(float r){radius = r;}float Circle::getRadius() const{return radius;}float Circle::area() const{return 3.14159*radius*radius;}ostream & operator << (ostream & output, const Circle &c){output << "Center = [" << c.x << "," << c.y << "],r = " << c.radius << " , area = " << c.area() << endl;return output;}Cylinder.cpp:#include<iostream>#include"Cylinder.h"using namespace std;Cylinder::Cylinder(float a , float b , float r ,float h): Circle(a, b, r), height(h){}void Cylinder::setHeight(float h) {height = h;}float Cylinder::getHeight() const {return height;}float Cylinder::area() const{return 2*Circle::area()+ 2* 3.14159*radius*height;}float Cylinder::volume() const{return Circle::area() * height;}ostream & operator <<(ostream & output , const Cylinder &cy){output << "Center = [" << cy.x << " , " << cy.y << "] , r =" << cy.radius << ", h = " << cy.height << "\n area = " << cy.area()<< ", volume = " << cy.volume() << endl;return output;}Point.h:#include<iostream>using namespace std;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 & , const Point &);float x ,y ;};Circle.h:#include<iostream>#include"Point.h"using namespace std;class Circle: public Point{public:Circle(float x = 0, float y = 0, float r = 0);void setRadius(float);float getRadius() const;float area() const;friend ostream & operator << (ostream &, const Circle &);float radius;};Cylinder.h:#include<iostream>#include"Circle.h"using namespace std;class Cylinder: public Circle{public:Cylinder (float x = 0 , float y = 0 , float r = 0 ,float h = 0);void setHeight(float);float getHeight() const;float area() const;float volume() const;friend ostream& operator << (ostream & , const Cylinder&);float height;};

0 0
原创粉丝点击