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

📄 demo_5_pure_virtual_function_abstract_class_3_b.cpp

📁 对于一个初涉VC++的人来书
💻 CPP
字号:

//**********************************************************
// 纯虚函数和抽象类 pure virtual function & abstract class
//**********************************************************

# include <iostream.h>

class Shape //定义抽象基类
{
public:
	virtual double area() const = 0; //纯虚函数
};

class Circle:public Shape
{
public:
	Circle(double r):radius(r){} 
	virtual double area() const {return 3.14159*radius*radius;}
protected:
	double radius;
};

class Rectangle:public Shape
{
public:
	Rectangle(double w,double h):width(w),height(h){}
	virtual double area() const {return width*height;} //定义虚函数
protected:
	double width,height;
};

class Triangle:public Shape
{
public:
	Triangle(double w,double h):width(w),height(h){}
	virtual double area() const {return 0.5*width*height;} //定义虚函数
protected:
	double width,height;                                            //宽与高
};

int main()
{
	Circle circle(10.0);
	Rectangle rectangle(10.0,10.0);
	Triangle triangle(10.0,10.0);

    //定义基类指针数组pt,每一个元素指向一个派生类对象
	Shape *pt[3]={&circle,&rectangle,&triangle};  

	double areas=0.0; //areas为总面积

	for(int i=0;i<3;i++)
	{
		areas=areas+pt[i]->area();
	}

	cout<<"Totol of all areas = "<<areas<<endl; //输出总面积
	
	return 0;
} 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -