c在父類宣告純虛擬函式怎樣在父類建構函式

2021-03-19 18:34:22 字數 2160 閱讀 5515

1樓:

不能,就算中bai轉一下也不行,du因為這個zhi時候還虛擬函式表還沒有dao改寫,也就是說版純虛函權

數還沒有實現,函式指標指是空的。這是時序的問題。

執行之後會報這個錯誤:

libc++abi.dylib: pure virtual function called!

[1] 2417 abort ./test而且多數情況下,連編譯期都過不去。

2樓:匿名使用者

建構函式在物件建立時被呼叫,父類都沒建立,他怎麼去呼叫子類的東西,想想你為什麼需要這樣的設計。

3樓:人生做回自己

在父親類的建構函式中不能呼叫子類的虛擬函式的。

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

4樓:匿名使用者

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

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

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

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

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

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

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

5樓:匿名使用者

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

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

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

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

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

6樓:小羊羊

c++中父類中有純虛擬函式,在子類中需要實現,那麼在子類的子類就不用實現了。

如果是子類沒實現的話,子子類就可能需要實現。希望能幫到你

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

7樓:匿名使用者

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

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

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

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

c++父類中宣告瞭一個虛擬函式以後 是不是在子類 以及子類的子類中 都要宣告並重寫這個函式?

8樓:匿名使用者

我看了一些文獻 是不行的,虛擬函式是c++多型的體現,必須要定義

9樓:匿名使用者

在子類中可以不宣告,但是就無法使用了

10樓:匿名使用者

基類宣告虛擬函式只是提供一個介面,也就是實現多型的關鍵,子類基本都要繼承的,如果有一個子類不需要實現這個函式,說明你的繼承關係有問題,最好改變一下繼承體系

11樓:

虛擬函式宣告只能砸出現在類定義中的函式原型宣告中, 而不能在成員函式實現的時候

由成員函式來呼叫或者是通過指標、引用來訪問虛擬函式。

12樓:匿名使用者

是的,只有在子類中宣告,才能夠在呼叫的時候檢索到子類中重寫函式的資料。

c++ 中,類的繼承:父類當使用虛擬函式時候,子類對該函式進行重寫的話,屬於子類成員函式對虛擬函式的覆蓋!

13樓:匿名使用者

可以這麼理解。

換句話說,你呼叫子類的虛擬函式,程式會執行你重寫的**,而不是定義在父類裡的**。

14樓:wssz**x的春天

有沒有**,你這樣我也看不懂!

c++中父類中含有一個虛擬函式,那麼子類中對其進行覆蓋的話,是不是需要返回值型別也一定相同?

15樓:匿名使用者

要覆蓋一個虛擬函式,那麼引數和返回值型別必須相同,否則不會覆蓋,只能過載!

16樓:匿名使用者

必須相同,否則在編譯時會報錯,指定了衝突的返回型別

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

1 在main函式中,假設有父類或者子類的例項物件,就須要有父類的虛擬函式的實內現。2 在容main函式中,假設沒有父類或者子類的例項物件,能夠不實現父類的虛擬函式。3 假設把虛擬函式寫成純虛擬函式,也就不須要實現了。也沒不會發生上述討論。子類中實現了,子子類就不用實現。子類沒實現的話,子子類就可能...

c成員函式的行內函數能否在類外宣告

我想你把函式的定義和宣告兩個概念混淆了,可以定義在外面,但是宣告肯定是在類內啊。標頭檔案 class a 定義檔案 inline void a foo int x,int y 表明是一個行內函數 若是定義在類內,就是隱式內聯了,比如class a 可以,不過類內必須要有函式宣告 mfc自動生成的文件...

簡述在類的繼承關係中,子類可以繼承父類的有哪些成員

子類不能從父類繼承的有 1.建構函式 2.拷貝建構函式 3.解構函式 子類能從父類繼承的有 1 靜態成員變數 2 靜態成員函式 3 友元函式 4 賦值操作符 過載函式 子類和父類在同一個包中時,子類可以繼承父類的除private屬性的所有方法和成員變數,當子類與 父類不在同一個包中時,子類只能繼承父...