虛函式與純虛函式的相同點:
1.都可以在子類中過載,以多型的形式被呼叫。
2.通常都存在於抽象基類中,被繼承的子類過載,目的是提供乙個統一的介面。
3.都不能使用static標示符(原因:虛函式是動態繫結的)
虛函式與純虛函式的不同點:
1.虛函式為了過載和多型的需要,已在類中被定義(即便定義為空),所以在子類中可以重寫其功能,也可以不用改寫。
純虛函式僅僅在類中被宣告,其定義必須在子類中實現。
2.虛函式可以被直接呼叫,也可以被子類過載以後以多型的形式呼叫。
純虛函式必須在子類中實現該函式才可以使用(原因:純虛函式在類中僅是乙個宣告)
3.虛函式的宣告:virtual 函式名( )
純虛函式的宣告:virtual 函式名( ) = 0;
4.含有純虛函式的類被稱為抽象類,而只含有虛函式的類不能被稱為抽象類。
5.如果乙個類中含有純虛函式,那麼對此類進行的任何例項化的語句都將導致錯誤(原因:抽象基類不能被直接呼叫)。
以下為乙個簡單的虛函式和純虛寒數的示例:
class father
virtual void test_2 = 0;
...}
class son:public father
void test_2()
}int main(void)
C 虛函式與純虛函式用法與區別
最開始學習c 的一點資料,忘了 位址了,覺得歸納的不錯,侵刪!1.虛函式和純虛函式可以定義在同乙個類 class 中,含有純虛函式的類被稱為抽象類 abstract class 而只含有虛函式的類 class 不能被稱為抽象類 abstract class 2.虛函式可以被直接使用,也可以被子類 s...
C 虛函式與純虛函式用法與區別
1.虛函式和純虛函式可以定義在同乙個類 class 中,含有純虛函式的類被稱為抽象類 abstract class 而只含有虛函式的類 class 不能被稱為抽象類 abstract class 2.虛函式可以被直接使用,也可以被子類 sub class 過載以後以多型的形式呼叫,而純虛函式必須在子...
C 虛函式與純虛函式用法與區別
1.虛函式和純虛函式可以定義在同乙個類 class 中,含有純虛函式的類被稱為抽象類 abstract class 而只含有虛函式的類 class 不能被稱為抽象類 abstract class 2.虛函式可以被直接使用,也可以被子類 sub class 過載以後以多型的形式呼叫,而純虛函式必須在子...