⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 demo_5_pure_virtual_function_abstract_class_2_c.cpp

📁 对于一个初涉VC++的人来书
💻 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=&triangle;        //基类指针指向派生类三角形对象
	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 + -