【C++之多態性】抽象類、純虛函數

什麼是抽象類:帶有純虛函數的類
什麼是純虛函數:沒有函數體的虛函數
純虛函數的聲明:

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
*/
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章