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 + -
显示快捷键?