demo_5_pure_virtual_function_abstract_class_3_a.cpp

来自「对于一个初涉VC++的人来书」· C++ 代码 · 共 67 行

CPP
67
字号

//**********************************************************
// 纯虚函数和抽象类 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; 
};

void printArea(const Shape &s) 
{ 
	cout<<s.area()<<endl; 
	return;
}  

int main()
{
	Circle circle(10.0); 

	cout<<"area of circle ="; 
	printArea(circle);

	Rectangle rectangle(10.0,10.0);

	cout<<"area of rectangle =";
	printArea(rectangle);

	Triangle triangle(10.0,10.0);

	cout<<"area of triangle  =";
	printArea(triangle);
	
	return 0;
}

⌨️ 快捷键说明

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