什麼是抽象類:帶有純虛函數的類
什麼是純虛函數:沒有函數體的虛函數
純虛函數的聲明:
class 類名{
virtual 類型 函數名(參數表)=0;//純虛函數
}
純虛函數的作用:
1、抽象類爲抽象和設計的目的而聲明的,將有關的數據和行爲組織在一個繼承層次結構中,保證派生類具有要求的行爲;
2、對於暫時無法實現的函數,可以聲明爲純虛函數,留給派生類去實現
但是注意:
1、抽象類只能作爲基類來使用;
2、不能聲明抽象類的對象(因爲純虛函數沒有函數體);
3、構造函數不能是虛函數,析構函數可以是虛函數。
舉例如下,通過抽象類A的指針來調用其派生類B的成員函數
class A {//抽象類A
public:
virtual int getValue() = 0;//純虛函數
};
class B :public A {
public:
B(int _b) :b(_b) {};
int getValue() {
return b;
}
private:
int b;
};
int main() {
A* pa = new B(1);
printf("%d", pa->getValue());
}
/*輸出:
1
*/