【C++基礎】純虛擬函式 - pure virtual function
1. 定義
在函式形參表後面寫上 = 0 以指定純虛擬函式.
virtual void function() = 0;
在派生類中必須實現(重寫)該函式(不要後面的=0, 否則該派生來也不能例項化).純虛擬函式通常沒有定義(函式體),但實際上我們是可以定義(實現)純虛擬函式的:
class Base
{
public:
virtual void function() = 0
{
}
};
class Derived : public Base
{
public:
void function()
{
}
};
2. 引入原因
- 很多情況下,基類本身生成物件是不合理的.例如,動物作為一個基類派生出老虎,獅子等派生類,但動物本身生成物件是不合理的;
- 定義純虛擬函式使派生類僅僅是介面繼承;
3. 抽象類
含有(或繼承)一個或多個純虛擬函式的類是抽象類(abstract class). 使用者不能建立抽象類的物件.
如果在派生類中沒有重新定義純虛擬函式,則這個派生類仍然還是一個抽象類.
相關文章
- C++繼承三之純虛擬函式pure virtual functionC++繼承函式Function
- C++中的虛擬函式(virtual function)C++函式Function
- C++ 介面(純虛擬函式)C++函式
- C++中抽象類、虛擬函式和純虛擬函式C++抽象函式
- 虛擬函式 純虛擬函式函式
- __cxa_pure_virtual報錯(g++編譯虛擬函式時)編譯函式
- C++:純虛擬函式與抽象類C++函式抽象
- 抽象基類和純虛擬函式抽象函式
- 介面、虛擬函式、純虛擬函式、抽象類函式抽象
- [CareerCup] 13.3 Virtual Functions 虛擬函式Function函式
- C++純虛擬函式簡介及區別C++函式
- C++ 虛擬函式C++函式
- C++虛擬函式C++函式
- 基類指標、虛純虛擬函式、多型性、虛析構指標函式多型
- C++ Virtual函式C++函式
- C++中的虛擬函式與虛擬函式表 (轉)C++函式
- c++虛擬函式表C++函式
- C++虛擬函式bugC++函式
- 【C++筆記】虛擬函式(從虛擬函式表來解析)C++筆記函式
- 【C++筆記】虛擬函式(從虛擬函式概念來解析)C++筆記函式
- C++ 中的虛擬函式C++函式
- C++ 虛擬函式表剖析C++函式
- C++ 虛擬函式表解析C++函式
- 內聯(inline)函式與虛擬函式(virtual)的討論inline函式
- 虛擬函式,虛擬函式表函式
- 解除心頭的困惑--純虛擬函式 (轉)函式
- C++多型(上)——虛擬函式、虛表C++多型函式
- 我對C++中虛擬函式、純虛擬函式在實現多型中作用的一點淺薄認識 (轉)C++函式多型
- C++多型之虛擬函式C++多型函式
- C++中虛擬函式的作用C++函式
- C++虛擬函式解析(轉載)C++函式
- 深入C++成員函式及虛擬函式表C++函式
- C++箴言:避免解構函式呼叫虛擬函式C++箴言函式
- C++ 虛擬函式和虛繼承淺析C++函式繼承
- 虛解構函式(√)、純虛解構函式(√)、虛建構函式(X)函式
- C++虛擬函式學習總結C++函式
- C++繼承二之虛擬函式C++繼承函式
- C++ 繼承、多型、虛擬函式C++繼承多型函式