一、純虛函式的定義與使用
1. 在虛函式後加上=0,表示該函式不需要實現**,也代表該類不能例項化;
2. 純虛函式如果沒有實現,那麼包含該純虛函式的類是抽象類;
3. 純虛析構一定要有實現;
二、抽像類的概念
1. 介面類:只是該類作為父類,規範對外使用的介面(某些函式)
2. 抽象類:一定要包含某乙個純虛函式,並且沒有被實現
示例**:
1 #include 2 #include 34using
namespace
std;56
//父類只是為了子類提供介面:介面類
7class
canimal811
virtual ~canimal() = 0 {}; //
純虛析構一定要有實現
12virtual
void run() = 0; //
純虛函式,不需要實現
13};
1415
class cfish :public
canimal
18virtual ~cfish() {}
19virtual
void run()
20};
2122
intmain()
23
C 純虛函式與抽象類
純虛函式 純虛函式 在基類中將某一成員函式定為虛函式,並不是基類本身的需要,而是考慮到派生類的需 要,在基類中預留了乙個函式名,具體功能留給派生類根據需要去定義。純虛函式是在宣告虛函式時被 初始化 為0的函式。一般形式為 virtual 函式型別 函式名 引數列表 0 如 virtual float...
C 純虛函式與抽象類
在很多的情況下,在基類中一般都不能給出虛函式的具體而有意義的定義,這時我們就可以將它說明為純虛函式。它的具體的定義由它的派生類具體完成,這樣可以使類之間的結構更加清晰,同時也更容易理解。含有純虛函式的類叫抽象類。說明純虛函式的一般格式 class 類名 virtual 返回值型別 函式名 引數列表 ...
C 純虛函式與抽象類
參考 純虛函式 是一種特殊的虛函式,是基類中只有宣告,無 法實現 定義的虛函式。含有純虛函式的類稱為 抽象類 ifndef purevir h define purevir h define pi 3.14159 namespace purev 基類為 抽象類 的派生類都必須定義自己的,和純虛函式同...