demo_5_pure_virtual_function_abstract_class_1.cpp

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

CPP
46
字号

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

#include <iostream.h>

class Base //基类-抽象类
{
public:
	Base(double x) { r=x; }   //基类的构造函数
//	virtual void Area()=0;    //纯虚函数的声明,不可创建基类对象
//	virtual void Area()=0 {}  //纯虚函数的等价声明
	virtual void Area()=0     //纯虚函数的等价声明
	{
		cout<<"Base Pure Virtual Function"<<endl;
		return;
	}
//	virtual void Area() {}    //不是纯虚函数的等价声明,因仍可创建基类对象
	 
	double s;
protected:
	double r;
};

class Derived:public Base //派生类
{
public:
	Derived(double x):Base(x) {} //派生类的构造函数
	void Area() 
	{ 
		s=3.14*r*r; 
		return;
	}
};

void main()
{
//	Base b(10);
	Derived d(10); //若派生类无重定义基类纯虚函数,则仍是抽象类,不能创建对象

	d.Area();
	cout<<"Area="<<d.s<<endl;

	return;
}

⌨️ 快捷键说明

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