6.14作业,建立3个container的派生类cube,sphere,cylinder,让每一个派生类都包含虚函数surface_area()和volume(),写出主程序,应用于c++的多态性
来源:互联网 发布:filter java 编辑:程序博客网 时间:2024/06/05 09:48
#include<iostream>
#include<string>
using namespace std;
class container{
public:
container(double radius)
{
r = radius;
}
virtual double surface_area()=0;
virtual double volume()=0;
protected:
double r;
};
class cube :public container
{
public:
cube(double radius) :container(radius)
{}
double surface_area()
{
cout << "这个正方体的表面积是:"<< 6 * r*r << endl;
return 0;
}
double volume()
{
cout << "这个正方体的体积是:" << r*r*r << endl;
return 0;
}
};
class sphere :public container
{
public:
sphere( double radius) :container(radius)
{}
double surface_area()
{
cout << "这个球体的表面积是:" <<4*3.14*r*r << endl;
return 0;
}
double volume()
{
cout << "这个球体的体积是:" <<3.14*r*r*r*4/3 << endl;
return 0;
}
};
class cylinder :public container
{
public:
cylinder(double radius, double height) :container(radius)
{
h = height;
}
double surface_area()
{
cout << "这个圆柱体的表面积是:" <<2*3.14*r*r+2*3.14*r*h << endl;
return 0;
}
double volume()
{
cout << "这个圆柱体的体积是:" <<3.14*r*r*h<<endl;
return 0;
}
private :
double h;
};
int main()
{
container *ptr;
cube c1(6.0);
sphere s1(5.0);
cylinder cy1(5.0, 6.0);
ptr = &c1;
ptr->surface_area();
ptr->volume();
ptr = &s1;
ptr->surface_area();
ptr->volume();
ptr = &cy1;
ptr->surface_area();
ptr->volume();
return 0;
}
#include<string>
using namespace std;
class container{
public:
container(double radius)
{
r = radius;
}
virtual double surface_area()=0;
virtual double volume()=0;
protected:
double r;
};
class cube :public container
{
public:
cube(double radius) :container(radius)
{}
double surface_area()
{
cout << "这个正方体的表面积是:"<< 6 * r*r << endl;
return 0;
}
double volume()
{
cout << "这个正方体的体积是:" << r*r*r << endl;
return 0;
}
};
class sphere :public container
{
public:
sphere( double radius) :container(radius)
{}
double surface_area()
{
cout << "这个球体的表面积是:" <<4*3.14*r*r << endl;
return 0;
}
double volume()
{
cout << "这个球体的体积是:" <<3.14*r*r*r*4/3 << endl;
return 0;
}
};
class cylinder :public container
{
public:
cylinder(double radius, double height) :container(radius)
{
h = height;
}
double surface_area()
{
cout << "这个圆柱体的表面积是:" <<2*3.14*r*r+2*3.14*r*h << endl;
return 0;
}
double volume()
{
cout << "这个圆柱体的体积是:" <<3.14*r*r*h<<endl;
return 0;
}
private :
double h;
};
int main()
{
container *ptr;
cube c1(6.0);
sphere s1(5.0);
cylinder cy1(5.0, 6.0);
ptr = &c1;
ptr->surface_area();
ptr->volume();
ptr = &s1;
ptr->surface_area();
ptr->volume();
ptr = &cy1;
ptr->surface_area();
ptr->volume();
return 0;
}
0 0
- 6.14作业,建立3个container的派生类cube,sphere,cylinder,让每一个派生类都包含虚函数surface_area()和volume(),写出主程序,应用于c++的多态性
- 派生Cylinder类
- 作业5.18 类的继承和派生
- c++基础10:继承和派生 虚函数的作用 多态性概念 纯虚函数和抽象类的概念
- C++学习笔记__类的派生和多态性
- Circle派生出Cylinder类
- 第十周C++【任务3】建立一个Point(点)类,派生出一个Circle(圆)类,派生出一个Cylinder(圆柱体)类
- [c++]派生类的构造函数和析构函数
- c++---派生类的构造函数和析构函数
- 第10周任务3(先建立一个Point(点)类,派生出一个Circle(圆)类,再派生出一个Cylinder(圆柱体)类)
- 包含子对象的派生类的构造函数
- 包含子对象的派生类的构造函数
- 包含子对象的派生类的构造函数
- 虚基类和派生类的函数调用
- 派生类的说明和构造函数
- C语言类的继承和派生
- 类的继承与派生(Shape例子派生Rectangle和Circle,Rectangle派生出Square)
- 再以Circle类为直接基类,派生出一个Cylinder(圆柱体)类,再增加数据成员h(高),,以及求圆柱表面积的成员函数area和求圆柱体积的成员函数volume,实现需要的成员函数,并设计main
- DFS练习-codevs-1295N皇后问题
- android开发之xUtils源码解析
- bzoj 1098: [POI2007]办公楼biu
- 设计模式之Observer Pattern
- 1. ipsec-tools on ubuntu14.04
- 6.14作业,建立3个container的派生类cube,sphere,cylinder,让每一个派生类都包含虚函数surface_area()和volume(),写出主程序,应用于c++的多态性
- P122.30
- 产品需求文档的写作(一) – 写前准备(信息结构图)
- 智能语音•四重奏——触不到的恋人?520,灵犀云助你浪漫邂逅
- java 单例模式
- 安卓学习记录
- 导出下载csv格式的表格(逗号分隔文件)的servlet代码,留待以后调用
- (一)java实现文档的在线浏览-简介
- 2. ipsec-tools on ubuntu14.04