#include <windows.h>
#include <time.h>
#include <math.h>
#include <conio.h>
#include <iostream>
using namespace std;
#define PI 3.141592
class base//基类
{
protected:
int x,y;
public:
base(int x, int y) { base::x = x; base::y = y; }//带参构造函数
virtual void disp() { cout << "这个类没有面积" << endl;};//定义一个界面接口
};
class Triarea:public base//三角形类;派生类可以访问基类保护和公有成员
{
public:
Triarea(int x, int y) : base(x, y) {};//Triarea()代替base()函数,在这里:表引用,为了传参
virtual void disp() { cout << "三角形面积为:" << (x * y) * 0.5 << endl;}//三角形的底和高
};
class Squarea:public base//正方形类
{
public:
Squarea(int x) : base(x, x) {};//正方形的边长,传递相同的参数
virtual void disp() {cout << "正方形的面积为:" << x * x << endl;}
};
class Cirarea:public base//圆类
{
public:
Cirarea(int x) : base(x, x) {};//圆的半径,传递相同的参数
virtual void disp() { cout << "圆的面积为:" << PI * x * x << endl;} //
};
void main(void)
{
base *p;//定义基类指针
Triarea t(3, 5);//定义一个三角形对象
Squarea s(6);
Cirarea c(3);
p = &t;//p指向对象t
p -> disp();//通过p调用disp()函数
p = &s;
p -> disp();
p = &c;
p -> disp();
p -> base::disp();
}
5404

被折叠的 条评论
为什么被折叠?



