📄 demo_5_pure_virtual_function_abstract_class_2_c.cpp
字号:
//**********************************************************
// 纯虚函数和抽象类 pure virtual function & abstract class
//**********************************************************
#include <iostream.h>
const double PI=3.14159; //圆周律常量
class Figure //基类
{
public:
void set_size(double x,double y=0)
{
x_size=x;
y_size=y;
}
virtual double get_area()=0; //纯虚函数的声明
// virtual double get_area() {}; //虚函数的声明
protected:
double x_size,y_size;
};
class Triangle:public Figure //派生类1
{
public:
// virtual double get_area()
double get_area()
{
return x_size*y_size/2; //三角形面积=底*高/2
}
};
class Rectangle:public Figure //派生类2
{
public:
// virtual double get_area()
double get_area()
{
return x_size*y_size; //矩形面积=长*宽
}
};
class Circle:public Figure //派生类3
{
public:
// virtual double get_area()
double get_area()
{
return PI*x_size*y_size; //圆面积=PI*半径*半径
}
};
void main()
{
Figure *figure; //定义指向基类对象的指针
Triangle triangle; //定义派生类1的对象
Rectangle rectangle; //定义派生类2的对象
Circle circle; //定义派生类3的对象
//处理派生类1-三角形
figure=▵ //基类指针指向派生类三角形对象
figure->set_size(15,8); //设置三角形的底和高
cout<<"Area of triangle is: "<<figure->get_area()<<endl;
//处理派生类2-矩形
figure=&rectangle; //基类指针指向派生类矩形对象
figure->set_size(15,8); //设置矩形的长和宽
cout<<"Area of triangle is: "<<figure->get_area()<<endl;
//处理派生类3-圆形
figure=&circle; //基类指针指向派生类圆形对象
figure->set_size(15,8); //设置圆的半径
cout<<"Area of triangle is: "<<figure->get_area()<<endl;
return;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -