C++入门 --- 纯虚函数与抽象类

一、纯虚函数的定义与使用

 1. 在虚函数后加上=0,表示该函数不需要实现代码,也代表该类不能实例化;

 2.   纯虚函数如果没有实现,那么包含该纯虚函数的类是抽象类;

 3.   纯虚析构一定要有实现;

二、抽像类的概念

 1.  接口类:只是该类作为父类,规范对外使用的接口(某些函数)

    2.  抽象类:一定要包含某一个纯虚函数,并且没有被实现

示例代码:

 1 #include <iostream>
 2 #include <string>
 3 
 4 using namespace std;
 5 
 6 //父类只是为了子类提供接口:接口类
 7 class CAnimal
 8 {
 9 public:
10     CAnimal(int) {}
11     virtual ~CAnimal() = 0 {}; //纯虚析构一定要有实现
12     virtual void Run() = 0; //纯虚函数,不需要实现
13 };
14 
15 class CFish :public CAnimal {
16 public:
17     CFish() :CAnimal(1) {}
18     virtual ~CFish() {}
19     virtual void Run() { cout << "CFish:Run()\r\n"; }
20 };
21 
22 int main() 
23 {
24     //CAnimal CA;  添加纯虚析构后,抽象类不能被实例化
25 
26     //创建一个鱼对象
27     CFish fish;
28 
29     CAnimal* PAm = new CFish;
30     return 0;
31 }

 

posted @ 2020-10-17 18:47  朱果果  阅读(149)  评论(0编辑  收藏  举报