# 純虛函數
## 作用
在基類中聲明虛函數,在派生類中進行具體的實現
## 聲明
~~~
virtual 函數類型 函數名 (參數表列) =0;//純虛函數
~~~
## 注意
* 純虛函數沒有函數體;
* 最后面的“=0”并不表示函數返回值為0,它只起形式上的作用,告訴編譯系統“這是純虛函數”;
* 這是一個聲明語句,最后應有分號。
* 純虛函數只有函數的名字而不具備函數的功能,不能被調用。
* 如果在一個類中聲明了純虛函數,而在其派生類中沒有對該函數定義,則該虛函數在派生類中仍然為純虛函數。
# 抽象類
* 用來定義對象而只作為一種基本類型用作繼承的類,稱為**抽象類**,由于它常用作基類,通常稱為**抽象基類**
* 凡是包含純虛函數的類都是抽象類
* 如果在抽象類所派生出的新類中對基類的所有純虛函數進行了定義,那么這些函數就被賦予了功能,可以被調用。這個派生類就不是抽象類,而是可以用來定義對象的具體類
- 介紹
- 編程設計語言
- 第一章 對C++的初步認識
- 1.2 最簡單的C++程序
- 1.3 C++對C的補充
- 1.3.1 return
- 1.3.2 輸入輸出流
- 1.3.3 putchar 和 getchar
- 1.3.4 用const定義常變量
- 1.3.5 函數原型聲明
- 1.3.6 內置函數
- 1.3.7 函數重載
- 1.3.8 函數模板
- 1.3.9 有默認值的參數
- 1.3.10 作用域
- 1.3.11 const修飾指針
- 1.3.12 引用
- 1.3.13 生命期
- 1.3.14 變量
- 1.3.15 字符串變量
- 第二章 類與對象
- 2.2 類的聲明和對象的定義
- 2.3 類的成員函數
- 第三章 關于類和對象的進一步討論
- 3.1 構造函數
- 3.1.1 對象的初始化
- 3.1.2 構造函數
- 3.2 析構函數
- 3.3調用析構函數和構造函數的順序
- 3.4 對象數組
- 3.5 對象指針
- 3.6 共享數據的保護
- 3.7 對象的建立與釋放
- 3.8 對象的賦值與復制
- 3.9 靜態成員
- 3.10 友元
- 3.11 類模板
- 第四章 運算符重載
- 數據類型轉換
- 運算符重載
- 重載流插入運算符和流提取運算符
- 第五章 繼承與派生
- 繼承與派生
- 第六章 多態性與虛函數
- 多態性
- 虛函數
- 純虛函數與抽象類