专业性行业网站有哪些,自己名下房产查询,微信平板专用版ipad版,北京网站设计济南兴田德润团队怎么样为什么要用继承 子类不必复制父类的任何属性#xff0c;已经继承下来了#xff1b;易于维护与编写#xff1b;
类的继承与派生 访问控制规则
一般只使用Public#xff01;
构造函数的继承与析构函数的继承
构造函数不被继承#xff01; 在创建子类对象的时候…为什么要用继承 子类不必复制父类的任何属性已经继承下来了易于维护与编写
类的继承与派生 访问控制规则
一般只使用Public
构造函数的继承与析构函数的继承
构造函数不被继承 在创建子类对象的时候会先调用父类的构造函数再调用子类的构造函数 在消亡子类对象的时候会先调用子类的析构函数再调用父类的析构函数
派生类构造函数 派生类析构函数 作业 main.cpp
#include shape.h
#include circle.h
#include rectangle.h
#include roundrectangle.h
#include iostream
using namespace std;
/* run this program using the console pauser or add your own getch, system(pause) or input loop */int main(void) {shape myshape1(red);myshape1.display();circle mycircle1;mycircle1.display();circle mycircle2(red,2);mycircle2.display();Rectangle myrectangle1(green,2,3);myrectangle1.display();RoundRectangle myroundrectangle1(yeelow,2,3,1);myroundrectangle1.display();return 0;
}shape.cpp
#include shape.h
#include iostream
using namespace std; shape::shape():color(white){cout无参创建shapeendl;}shape::shape(string color){this-color color;cout有参创建shapeendl;}shape::~shape(){cout消亡shapeendl;}string shape::getColor(){return this-color;}void shape::setcolor(char color){this-color color;}void shape::display(){coutcolor:getColor()endl;}shape.h
#ifndef SHAPE_H
#define SHAPE_H
#include string
#include iostream
using namespace std;
class shape{private:string color;public:shape();shape(string color);~shape();string getColor();void setcolor(char color);void display();
};#endifcircle.cpp
#include circle.h
#include shape.h
#include iostreamconst double pi 3.14;circle::circle(){radius 1;cout无参创建circleendl;}circle::circle(string color,double radius):shape(color){this-radius radius;cout有参创建circleendl;}circle::~circle(){cout消亡circleendl;}double circle::getRadius(){return this-radius;}void circle::setradius(double radius){this-radius radius; }double circle::getArea(){return pi*radius*radius;}void circle::display(){shape::display();coutRgetRadius(),AreagetArea()endl;}circle.h
#ifndef CIRCLE_H
#define CIRCLE_H
#include string
#include shape.hclass circle:public shape{private:double radius;public:circle();circle(string color,double radius);~circle();double getRadius();void setradius(double radius);double getArea();void display();
};#endifrectangle.cpp
#include rectangle.h
#include shape.h
#include iostreamRectangle::Rectangle(){width 1;height 1;cout无参创建Rectangleendl;}Rectangle::Rectangle(string color,double width,double height):shape(color){this-width width;this-height height;cout有参创建Rectangleendl; }Rectangle::~Rectangle(){cout消亡Rectangleendl;}double Rectangle::getWidth(){return width; }double Rectangle::getHeight(){return height;}void Rectangle::setWidth(double width){this-width width;}void Rectangle::setHeight(double height){this-height height;}double Rectangle::getArea(){return width*height;}void Rectangle::display(){shape::display();coutwidthgetWidth(),HeightgetHeight(),AreagetArea()endl;}rectangle.h
#ifndef RECTANGLE_H
#define RECTANGLE_H
#include string
#include shape.hclass Rectangle:public shape{private:double width;double height;public:Rectangle();Rectangle(string color,double width,double height);~Rectangle();double getWidth();double getHeight();void setWidth(double width);void setHeight(double height);double getArea();void display();
};#endifroundrectangle.cpp
#include roundrectangle.h
#include rectangle.h
#includeshape.h
#include iostreamRoundRectangle::RoundRectangle(){this-roundRadius 1;cout无参创建RoundRectangleendl; }RoundRectangle::RoundRectangle(string color,double width,double height,double roundRadius):Rectangle(color,width,height){this-roundRadius roundRadius;cout有参创建RoundRectangleendl;}RoundRectangle::~RoundRectangle(){cout消亡RoundRectangleendl; }double RoundRectangle::getRoundradius(){return roundRadius;}void RoundRectangle::setRoundradius(double roundRadius){this-roundRadius roundRadius;}double RoundRectangle::getArea(){return Rectangle::getWidth()*Rectangle::getHeight()(3.14*roundRadius*roundRadius)/2;}void RoundRectangle::display(){shape::display();coutwidthRectangle::getWidth(),HeightRectangle::getHeight(),AreagetArea()endl;}roundrectangle.h
#ifndef ROUNDRECTANGLE_H
#define ROUNDRECTANGLE_H
#include string
#include rectangle.hclass RoundRectangle:public Rectangle{private:double roundRadius;public:RoundRectangle();RoundRectangle(string color,double width,double height,double roundRadius);~RoundRectangle();double getRoundradius();void setRoundradius(double roundRadius);double getArea();void display();
};#endif