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導致基類函式被覆蓋,所以肯定錯了 大家都說錯了,沒說到重點。這不是什麼虛函式限制,主要原因在於函式呼叫...