虛擬函式跟一般函式一樣,唯一的差別是在於使用再"多型"上,當一個子類別想要使用和父類別相同名稱的函式時,也就是做覆寫的動作時,必須在父類別中將該函式前面加上 virtual 用以辨識,表示該函式是可以被覆寫的,而此函式稱為虛擬函式。
class A
{
public:
//一般函式
int Test()
{
return 0;
}
}
class A
{
public:
//虛擬函式
virtual int Test()
{
return 0;
}
}
另外有另一種不提供函式內容的虛擬函式稱為"純"虛擬函式,只要類別中有一個以上的純虛擬函式,該類別就稱為抽象類別,抽象類別只能被拿來繼承,無法直接產生物件(實例),而繼承該類別的類別,必須實做那些函式。純虛擬函式與虛擬函式的宣告方式差異,除了純虛擬含是不定義函式內容以外,必須在函式後面加上=0
class A
{
public:
//純虛擬函式
virtual int Test()=0;
}
沒有留言:
張貼留言