在c 中純虛函式和抽象類的具體用途是什麼,他們的區別是什麼

2021-04-19 01:29:43 字數 1341 閱讀 6317

1樓:匿名使用者

從名字bai上就能

看出來,純du虛函式是一種「函式」zhi

,抽象類是一dao種版」類「,函式和類,自權然是最大的區別。

它們的用途是定義抽象的介面。

純虛函式是指沒有具體實現的虛函式,乙個類包含了純虛函式就成為了抽象類,這樣的類不能被建立例項,所以可以作為抽象介面,由子類來定義純虛函式的具體實現。

c++中 虛函式與純虛函式的區別是什麼?

2樓:月無痕

虛函式與純虛函式 在他們的子類中都可以被重寫。它們的區別是:

(1)純虛函式只有定義,沒有實現;而虛函式既有定義,也有實現的**。

純虛函式一般沒有**實現部分,如

virtual void print() = 0;

而一般虛函式必須要有**的實現部分,否則會出現函式未定義的錯誤。

virtual void print()

(2)包含純虛函式的類不能定義其物件,而包含虛函式的則可以。

c++中,純虛函式有什麼作用呢??真不明白,這個會用得很廣泛麼?

3樓:殤年【記憶

c++中,純虛函式只能在抽象類裡定義,主要用處就是繼承抽象類的子類可以重寫這個純虛函式,用於多型的程式設計

至於廣泛不?不是很清楚,個人覺得應該挺廣泛的。

c++中純虛函式有什麼作用?

4樓:何度千尋

通過它可以指明乙個虛函式只是提供了乙個可被子型別改寫的介面。

純虛函式是在基類中宣告的虛函式,它可以在基類中有定義,而且派生類必須定義自己的實現方法。基類不能生成物件,可以使用指標或者引用派生類物件。基類不在基類中實現純虛函式的方法是在函式原型後加「=0」

virtual void funtion1()=0引入原因/純虛函式的作用

為了方便使用多型特性,我們常常需要在基類中定義虛函式。

在很多情況下,基類本身生成物件是不合情理的。例如,動物作為乙個基類可以派生出老虎、孔雀等子類,但動物本身生成物件明顯不合常理。

為了解決上述問題,引入了純虛函式的概念,將函式定義為純虛函式(方法:virtual returntype function()= 0;),則編譯器要求在派生類中必須予以重寫以實現多型性。同時含有純虛函式的類稱為抽象類,它不能生成物件。

這樣就很好地解決了上述兩個問題。

5樓:匿名使用者

1。父類中如果都是純虛函式,那麼此父類可以作為介面(inte***ce)。

2。父類中存在純虛函式,子類中重寫(override)該函式,可實現多型。

c 中抽象類到底有什麼用處,C 中 抽象類和虛基類用途上有什麼區別

提供了做蛋糕的模子和一套流程,至於做出來的蛋糕具體是什麼口味還得由你自己決定,但至少能保證你做出來的是蛋糕而不是麵包或者別的什麼,是共性與個性的統一!抽象類就像是乙個物種類一樣!比如。抽象類就是鳥這個物種。這個鳥是沒有這個動物的。從這個鳥類裡面繼承出來了雞孔雀等。然後虛函式就比方是特徵。比如雞的特徵...

C中,抽象類和介面有哪些區別

抽象類的成員可以具有訪問級別,而介面 的成員全部public級別 抽象類可以包含內欄位,而界面容不可以 介面可以用屬性來代替 抽象類可以繼承介面,而介面不能繼承抽象類 抽象類的成員可以具有具體實現,而介面不行 這些是語法上的區別,實際上用途也不同 簡單的例子 汽車能鳴叫 beep 手機也能響鈴 be...

關於c中虛函式過載的問題,C 中純虛函式能過載嗎?

在派生類重新定義或者覆寫基類的過載函式,會導致繼承的名稱被遮掩。在派生類的 public 區域增加 using base func 語句可以解決。你在derive類中的func也加上了virtual導致基類函式被覆蓋,所以肯定錯了 大家都說錯了,沒說到重點。這不是什麼虛函式限制,主要原因在於函式呼叫...