C中父類的虛擬函式必須要實現嗎

2021-03-03 20:53:28 字數 2143 閱讀 8508

1樓:匿名使用者

虛擬函式是自帶實現的,因此派生類中可以選擇實現自己的,也可以直接使用基版類的。

但是純虛擬函式一般權未提供實現,所以派生類基本需要提供實現,但是即使基類提供了預設實現,如果派生類需要進行例項化,那麼派生類還是需要提供實現的。

2樓:匿名使用者

你可以定義純虛擬函式,這部需要實現

c++中虛擬函式必須有定義嗎?

3樓:呵呵

需要例項化類的虛擬函式必須有定義,而僅僅定義帶有虛擬函式的類且虛擬函式沒有實現,該類編譯是可以通過的!

純虛擬函式出現在介面類中,並賦值為0,不要為該函式分配函式地址,從而阻止類的例項化!純虛擬函式是沒有定義的,如果實現了也不是純虛擬函式啦!

一般的成員函式可以只有宣告,前提是在應用中不能呼叫該函式,否則會因找不到定義產生連線錯誤!

c++ 中 父類中虛擬函式要全部繼承嗎

4樓:聖吻之櫺

全部繼承是什麼意思??繼承了這個類,這個類的方法當然全部有的?你是不是想問是不是應該子類全部實現它的虛擬函式??不用的!只要不是純虛擬函式就可以不用實現,直接用父類的就可以的

基類中定義的虛擬函式,子類中必須要覆蓋嗎?為什麼?

5樓:匿名使用者

要看虛擬函式本身有沒有實現。

存沒有實現的純虛擬函式,那這個基類是不能例項化的。繼承這個基類的子類可以覆蓋也可以不覆蓋其虛擬函式。如果基類中的純虛擬函式在子類中沒有覆蓋,那這個子類還是一個虛類,不能例項化的。

6樓:匿名使用者

如果基類定義的純虛擬函式,那麼子類繼承下來的也是純虛擬函式,如果不給予實現,那麼便不能建立子類的例項,如果基類定義的是非純虛擬函式,那麼子類繼承下來的也是非純虛擬函式。都可以不予實現,因為自動繼承下來了,看你子類的需要。

7樓:匿名使用者

虛擬函式的目的就是在需要的時候實現,從而實現多型,如果必須覆蓋,還要虛擬函式有什麼意義

c++中父類中有純虛擬函式,在子類中需要實現,問題:在子類的子類中也需要實現嗎?

8樓:匿名使用者

子類中實現了,子子類就不用實現。。。

子類沒實現的話,子子類就可能需要實現。。。

反正沒有實現這個=0的函式的類是無法建立物件的。。。

所以要例項化的類就要實現,***。。。

c++使用虛擬函式的時候,子類也要使用virtual關鍵字嗎

9樓:pretty星空

c++規定,當一個成員函式被宣告為虛擬函式後,其派生類中的同名函式都自動成為虛擬函式。因此,在子類重新宣告該虛擬函式時,可以加,也可以不加,但習慣上每一層宣告函式時都加virtual,使程式更加清晰。

10樓:匿名使用者

不用的,隨你加不加,有virtual是可以被子類重寫的。

11樓:匿名使用者

不需要,那樣有點畫蛇添足。

12樓:白巫師

可以不用,c++並不強制在子類加virtual

13樓:暴君坎普

不用 當然為了方便** 還是寫上比較好

c++父類中有純虛擬函式,在子類的子類中也需要實現嗎?

14樓:匿名使用者

(1)在main函式中,假設有父類或者子類的例項物件,就須要有父類的虛擬函式的實內現。

(2)在容main函式中,假設沒有父類或者子類的例項物件,能夠不實現父類的虛擬函式。

(3)假設把虛擬函式寫成純虛擬函式,也就不須要實現了。也沒不會發生上述討論。

子類中實現了,子子類就不用實現。

子類沒實現的話,子子類就可能需要實現。

反正沒有實現這個=0的函式的類是無法建立物件的。

所以要例項化的類就要實現。

15樓:匿名使用者

子類中實現了,子子類就不用實現。。。

子類沒實現的話,子子類就可能需要實現。。。

反正沒有實現這個=0的函式的類是無法建立物件的。。。

所以要例項化的類就要實現,***。。。

c 中基類指標指向派生類時,呼叫的虛擬函式是派生類的,為什麼要這樣啊

直接用子類物件呼叫函式當然沒問題,基類指標指向派生類物件是多型性的體現。什麼是多型呢?多型就是不同物件接受相同的訊息,但是卻產生不同的行為,舉一個很簡單的例子,有一個圖形類,他有幾個派生類,如圓形,三角形,矩形。圖形類有一個函式area 用來求面積,但是由於不同圖形求面積的方法不同,要由具體的派生類...

C 中在基類裡宣告為const的純虛擬函式在派生類裡的同名函

必須,函式是否為const也是過載條件之一比如在一個類裡,存在重名函式 void print void print const 那麼是合法的過載 但是如果是 int print const int print 則不是合法過載 因此想要實體化circle類,必須實現一個形如double print c...

c類成員函式可以定義變數嗎,C中定義的類,成員函式可以直接使用嗎

什麼叫 函式可以定義變數嗎 是在函式裡定義變數還是啥意思?沒有 函式可以定義變數 這種說法 c 中定義的類,成員函式可以直接使用嗎?沒有物件的時候要訪問類成員函式的話,只能訪問靜態成員函式。例如 class a 這樣可以在主函式裡直接用 a abc 這樣的語句進行呼叫。請教一下 c 類中privat...