包含純虛函式的基類是否不能用作定義物件

2021-03-04 05:29:17 字數 1240 閱讀 5369

1樓:匿名使用者

沒問題,不能定義物件但可以定義物件的指標和物件的引用。

含有純虛函式的類是不可以用來建立物件的,因為它是虛基類

2樓:匿名使用者

這得分清楚含有純虛函式的類與虛基類是兩個不同的概念。

(1)含有純虛函式的類是不能建立物件

(2)虛基類是指在繼承的時候,通過虛繼承的方式,繼承的基類。

含有純虛函式的類在繼承的時候,可以不加virtual關鍵字,因此可以不是虛基類

只要在繼承的時候,加了virtual關鍵字,都是虛基類,這與基類中是否有純虛函式無關

類宣告中包含純虛函式時怎麼定義物件? 15

3樓:匿名使用者

抽象類的子類必須將所有的純虛函式都重定義了才可以例項化生成物件,你的clear函式是不是沒有在子類中定義呀?應該定義了就好了。

派生類中完全實現基類中所有的的純虛函式,否則,派生類也變成了抽象類,不能例項化物件什麼意思?

4樓:匿名使用者

基類中有純虛函式,如virtual int fun() = 0;

在派生類中要實現 這個純虛函式。

如果派生類中沒有實現這個函式,那麼等於派生類中也有了,virtual int fun() = 0;

那麼派生類也變成了抽象類,不能例項化。

抽象類:有純函式的類。

5樓:匿名使用者

純虛函式就是只有宣告且=0的

派生類就是它的子類嘛,如果沒有完全實現父抽象類(完全抽象類)中的所有抽象方法(虛方法與純屬虛方法),那麼子類就成乙個抽象類。

抽象類是不能直接例項化的。

這裡的抽象意思就是不是實際的。沒有完全實現的。或者說還是半成品。

派生類如果繼承了抽象基類中的純虛函式,而在該派生類中沒有對此純虛函式進行定義 ......

6樓:

這應該是筆誤吧,如果派生類中沒有對基類的純虛函式進行定義,那麼派生類自身也就成了乙個抽象類,無法被例項化。如果也沒有進行宣告,那繼承下來的函式還是純虛函式。因為它明確地告訴了編譯器函式有操作名稱,但是指向無效位址。

如果在派生類中對基類的純虛函式進行了重新宣告或者定義,那麼此函式的操作指標就被指到了新的位址,如果這個新的操作位址沒有被指向0,那就不再是乙個純虛函式,派生類也就不再是抽象類。

C中虛函式,虛基類,virtual的用法我很暈,高手能幫

c 中有繼承的概念,即乙個基類總領一組的類!而虛函式就是把這一組的類共同的特徵和行為抽出來,放在基類裡面,好比宣告,而具體到每個派生類時,再把這個特徵和行為 函式 描述出來。好處就是利用向上轉型這個特點,使用基類的物件來呼叫這一組類的物件的函式。比如定義乙個基類動物,派生貓,狗等等,我就可以在動物類...

c 中虛函式和純虛函式的作用與區別

包含純虛函式的類不可以例項化。c 中 虛函式與純虛函式的區別是什麼?虛函式與純虛函式 在他們的子類中都可以被重寫。它們的區別是 1 純虛函式只有定義,沒有實現 而虛函式既有定義,也有實現的 純虛函式一般沒有 實現部分,如 virtual void print 0 而一般虛函式必須要有 的實現部分,否...

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

虛函式與純虛函式 在他們的子類中都可以被重寫。它們的區別是 1 純虛函式只有定義,沒有實現 而虛函式既有定義,也有實現的 純虛函式一般沒有 實現部分,如 virtual void print 0 而一般虛函式必須要有 的實現部分,否則會出現函式未定義的錯誤。virtual void print 2 ...