接口与继承
来源:互联网 发布:汽车里程表调校软件 编辑:程序博客网 时间:2024/06/06 01:14
#include<iostream>#define PI 3.1415using namespace std;class Shape{ public: Shape() {cout<<"调用构造函数Shape"<<endl;} ~Shape() {cout<<"调用析构函数Shape"<<endl;} virtual double Girth()=0; virtual double Area()=0;};class Rectangle: public Shape{private: double len; double wide;public: Rectangle(double l=0,double w=0) {len=l; wide=w; cout<<"调用构造函数Rectangle"<<endl;} void SetRectangle(double l=0,double w=0) {len=l; wide=w;} ~Rectangle(){cout<<"调用析构函数Rectangle"<<endl;} double Girth() {return (len+wide)*2;} double Area() {return len*wide;}};class Circle:public Shape{private: double r;public: Circle(double radius=0) {r=radius; cout<<"调用构造函数Circle"<<endl;} void SetCircle(double radius=0) {r=radius;} ~Circle(){cout<<"调用析构函数Circle"<<endl;} double Girth() {return 2*PI*r;} double Area() {return PI*r*r;}};class Square:public Rectangle{public: Square(double x=0) {Rectangle(x,x); cout<<"调用构造函数Square"<<endl;} void SetSquare(double x=0) {SetRectangle(x,x);} ~Square(){cout<<"调用析构函数Square"<<endl;}};int main(){ Rectangle b; Circle c; Square d; double x,y,m,n; cout<<endl<<"请输入矩形长和宽(用空格隔开):"<<endl; cin>>x>>y; b.SetRectangle(x,y); cout<<"矩形周长为:"<<b.Girth()<<endl; cout<<"矩形面积为:"<<b.Area()<<endl; cout<<endl<<"请输入圆形的半径:"<<endl; cin>>m; c.SetCircle(m); cout<<"圆形周长为:"<<c.Girth()<<endl; cout<<"圆形面积为:"<<c.Area()<<endl; cout<<endl<<"请输入正方形的边长:"<<endl; cin>>n; d.SetSquare(n); cout<<"正方形周长为:"<<d.Girth()<<endl; cout<<"圆形面积为:"<<d.Area()<<endl; system("pause"); cout<<endl; return 0;}
0 0
- 类继承与接口继承
- 接口继承与实现继承
- 接口继承与实现继承
- 接口继承与实现继承
- 接口继承与实现继承
- 接口继承与实现继承
- 接口继承与实现继承
- 继承与接口
- 接口与多重继承
- 接口与多重继承
- 继承与接口
- 接口与多重继承
- 继承与接口
- java继承与接口
- 继承与接口
- 继承与接口
- 继承关系与接口
- 继承,抽象与接口
- Effective c# 第二版读书笔记1
- Tomcat9 users and roles, Remote deploy
- Delphi 10 Seattle小票打印控件TQ_Printer
- Shell——文件包含
- Shell——test 命令
- 接口与继承
- vim小技巧中恢复/撤销/复制部分字符
- Shell——流程控制
- Shell——函数
- [51nod 1136 欧拉函数]
- MySQL中REGEXP正则表达式
- MATALB中的最大和最小常量
- Android 软键盘弹出时把布局顶上去,控件乱套解决方法
- subprocess.Popen(cmd)包含中文怎么办