一般來說,許多時候基類並不能確定函式的實現方法,只能確定函式的功能。但是函式呼叫的時候必須要用到該函式。這種情況下,c++提供了一種機制,成為純虛函式,屬於虛函式的一種,體現了物件導向的多型性。
#include #define pi 3.14
using namespace std;
class calculate;
class basedata: public calculate
double getperimeter()
double getarea()
double getcirclearea()
};int main(){
double a, b, c;
cin>>a>>b>>c;
basedata* basedata = new basedata(a,b,c);
cout一些細節:
在上面**中,calculate被稱為抽象類,抽象類就是包含純虛函式的類。
calculate中宣告的純虛函式必須在派生類中全部實現,否則編譯不會通過。
抽象類無法宣告物件。
僅含有純虛函式而不含有任何其他成員函式和成員變數的類就叫做介面類。
在swift語言中,無抽象類的概念,但是「協議」與抽象類概念類似,用法類似。
C 虛函式 純虛函式
1 基本概念 虛函式是在基類中使用關鍵字virtual宣告的函式。在派生類中重新定義基類中定義的虛函式時,會告訴編譯器不要靜態鏈結到該函式。我們想要的是在程式中任意點可以根據所呼叫的物件型別來選擇呼叫的函式,這種操作被稱為動態鏈結,或後期繫結。您可能想要在基類中定義虛函式,以便在派生類中重新定義該函...
C 虛函式 純虛函式
1.析構函式是否應為虛函式問題?2.成員函式的虛函式問題?3.析構函式是否可以為純虛函式問題?說明 僅在使用父類指標指向子類物件時有區別 當析構函式非虛函式時,使用父類指標指向子類物件,在析構時將不會呼叫子類析構函式 當析構函式是虛函式時,使用分類指標指向子類物件,在析構時會呼叫子類析構函式,且呼叫...
C 虛函式 純虛函式
include qdebug class animal void animal animal 即要實現基類animal的animal函式 假如在dog子類中沒有實現animal 函式,則會呼叫基類的animal 函式。即列印 what is the animal 假如在dog子類中實現了animal...