目录
题目:
4、计算三角形,正方形,圆形面积、周长。要求:
(1)设计基类 shape,并定义 area(),cir(两个虚函数。
(2)设计三个派生类(三角形,正方形,圆形)。
(2)在主函数中,利用基类指针,进行派生类成员函数的调用,实现动态联编。
实现代码:
#include<iostream>
using namespace std;
const double PI = 3.14;
class shape
{
public:
virtual int area() = 0;
virtual int cir() = 0;
};
class sanjiao:public shape
{
private:
int l1;
int l2;
int l3;
public:
sanjiao(int l, int y, int i)
{
l1 = l;
l2 = y;
l3 = i;
}
int area()
{
return 0.5 * l1 * l2;
}
int cir()
{
return l1 + l2 + l3;
}
};
class zheng : public shape
{
private:
int a;
public:
zheng(int s) :a(s) {}
int area()
{
return a * a;
}
int cir()
{
return a * 4;
}
};
class yuan :public shape
{
private:
int r;
public:
yuan(int rr):r(rr){}
int area()//virtual int area() = 0;
{
return PI * r * r;
}
int cir()
{
return PI * 2 * r;
}
};
int main()
{
shape* p;
sanjiao san(1,2,3);
p = &san;
cout<<"面积为:"<<p->area();
cout<<"周长为:"<<p->cir();
cout << endl;
zheng z(4);
p = &z;
cout << "面积为:" << p->area();
cout << "周长为:" << p->cir();
cout << endl;
yuan y(3);
p = &y;
cout << "面积为:" << p->area();
cout << "周长为:" << p->cir();
cout << endl;
}
运行结果: