C++純虛擬函式和抽象類
阿新 • • 發佈:2021-02-03
C++純虛擬函式和抽象類
在多型中,通常父類中虛擬函式的實現是毫無疑義的,主要都是呼叫子類重寫的內容,因此可以將虛擬函式改為純虛擬函式
純虛擬函式語法:
virtual 返回值型別 函式名 (引數列表)=0;
當類中有了純虛擬函式,這個類也稱為抽象類
抽象類特點: *
無法例項化物件 *
子類必須重寫抽象類中的純虛擬函式,否則也屬於抽象類
程式碼示例:
#include <iostream>
using namespace std;
//純虛擬函式和抽象
class Base
{
public:
//純虛擬函式
//只要有一個純虛擬函式,這個類稱為抽象類
//抽象類特點:
// 1.無法例項化物件
//2.抽象類的子類 必須要重寫父類中的純虛擬函式,否則也屬於抽象類
virtual void func() = 0;
};
class Son :public Base
{
public:
virtual void func()
{
cout << "func函式呼叫" << endl;
};
};
void test01()
{
//Base b; //抽象類是無法例項化物件
//new Base; //抽象類是無法例項化物件
//Son s; //子類必須重寫父類中的純虛擬函式,否則無法例項化物件
Base*base = new Son;
base->func();
}
int main()
{
test01();
return 0;
}