C++基础知识之"纯虚函数和抽象类"

fengjingtu

基本概念

纯虚函数是一个在基类中说明的虚函数,在基类中没有定义,要求任何派生类都定义自己的版本

纯虚函数为各派生类提供一个公共界面(接口的封装和设计,软键的模块功能划分)

纯虚函数说明形式:virtual 类型 函数名(参数表)=0;

一个具有纯虚函数的基类称为抽象类

例如:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
//抽象类shape
class shape
{
public:
point where(){return center;}
virtual void rotate(int)=0;//纯虚函数
virtual void draw()=0;//纯虚函数

}
shape x;//error 抽象类不能建立对象
shape *p;// OK 可以声明抽象类的指针
shape f(); //error 抽象类不能作为返回类型
void g(shape);//error 抽象类不能作为参数类型
shape &h(shape &)// OK,可以声明抽象类的引用


class circle:public shape
{
int radius;
public
//要使circle成为非抽象类,必须作以下声明
void rotate(int)=0;
void draw()=0;
}
// 并提供以下定义
circle::rotate(int)
circle::draw()

抽象类案例

抽象类在继承中的概念