#include<iostream>
using namespace std;
#define PI 3.14
class CCircle
{
public:
double Area()
{
area1=PI*r1*r1;
return area1;
}
CCircle(int a):r1(a){} //带参构造函数
// private:
int r1;
double area1;
};
class CCylinder
{
public:
double Area()
{
area2=PI*r2*r2;
return area2;
}
double Volume()
{
volume2=PI*r2*r2*h2;
return volume2;
}
CCylinder(int b,int c):r2(b),h2(c){}
// private:
int r2;
int h2;
double area2;
double volume2;
};
void Display(class CCircle&m)
{
m.area1=PI*m.r1*m.r1;
cout<<m.area1<<endl;
}
void Display(class CCylinder&n)
{
n.area2=PI*n.r2*n.r2;
n.volume2=n.area2*n.h2;
cout<<n.volume2<<endl;
}
/* 请在这里填写答案 */
int main()
{
CCircle liv_Cri(4);
CCylinder liv_Cyl (4,8);
cout<<liv_Cri.Area()<<endl; //直接输出liv_Cri的面积
cout<<liv_Cyl.Area()<<','<<liv_Cyl.Volume()<<endl; //直接输出liv_Cyl的面积和体积
Display(liv_Cri); //调用Display函数输出liv_Cri的面积
Display(liv_Cyl); //调用Display函数输出liv_Cyl的面积和体积
return 0;
}
//因为主函数里面对于两个类有着相同的函数名 可以重载/虚函数
//这里用的是虚函数来传递类的名称
#include<iostream>
using namespace std;
const double PI=3.14;
class CCircle
{
protected:
double r;
public:
CCircle(double rr=0):r(rr){}
double Area(){return PI*r*r;}
virtual double result(){return PI*r*r;}
};
class CCylinder:public CCircle
{
private:
double h;
public:
CCylinder(double rr,double hh):CCircle(rr),h(hh){}
double Volume(){return PI*r*r*h;}
double result(){return PI*r*r*h;}
};
void Display(CCircle &p)
{
cout<<p.result()<<endl;
}
/* 请在这里填写答案 */
int main()
{
CCircle liv_Cri(4);
CCylinder liv_Cyl (4,8);
cout<<liv_Cri.Area()<<endl; //直接输出liv_Cri的面积
cout<<liv_Cyl.Area()<<','<<liv_Cyl.Volume()<<endl; //直接输出liv_Cyl的面积和体积
Display(liv_Cri); //调用Display函数输出liv_Cri的面积
Display(liv_Cyl); //调用Display函数输出liv_Cyl的面积和体积
return 0;
}