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

2021-03-27 11:53:27 字數 3824 閱讀 3414

1樓:匿名使用者

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

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

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

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

抽象類:有純函式的類。

2樓:匿名使用者

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

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

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

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

派生類中完全實現基類中所有的的純虛擬函式,但還是有錯誤 :不能例項化抽象類

3樓:匿名使用者

還有個純虛的解構函式。。。個人建議將抽象類的解構函式弄成虛的就行的,沒必要純虛!

純虛擬函式的定義

4樓:沉珂

純虛擬函式是一種特殊的虛擬函式,它的一般格式如下:

class 《類名>

;在許多情況下,在基類中不能對虛擬函式給出有意義的實現,而把它宣告為純虛擬函式,它的實現留給該基類的派生類去做。這就是純虛擬函式的作用。

純虛擬函式可以讓類先具有一個操作名稱,而沒有操作內容,讓派生類在繼承時再去具體地給出定義。凡是含有純虛擬函式的類叫做抽象類。這種類不能宣告物件,只是作為基類為派生類服務。

除非在派生類中完全實現基類中所有的的純虛擬函式,否則,派生類也變成了抽象類,不能例項化物件。

一般而言純虛擬函式的函式體是預設的,但是也可以給出純虛擬函式的函式體(此時純虛擬函式變為虛擬函式),這一點經常被人們忽視,呼叫純虛擬函式的方法為baseclass::virtual function.

以下哪個基類中的成員函式表示純虛擬函式

5樓:等待晴天

virtual void vf( int) 和void vf(int) =0基類中的成員函式表示純虛擬函式。

純虛擬函式是一種特殊的虛擬函式,在許多情況下,回在基類中不能對虛答函式給出有意義的實現,而把它宣告為純虛擬函式,它的實現留給該基類的派生類去做。這就是純虛擬函式的作用.

在許多情況下,在基類中不能對虛擬函式給出有意義的實現,而把它宣告為純虛擬函式,它的實現留給該基類的派生類去做。這就是純虛擬函式的作用。

純虛擬函式可以讓類先具有一個操作名稱,而沒有操作內容,讓派生類在繼承時再去具體地給出定義。凡是含有純虛擬函式的類叫做抽象類。這種類不能宣告物件,只是作為基類為派生類服務。

除非在派生類中完全實現基類中所有的的純虛擬函式,否則,派生類也變成了抽象類,不能例項化物件。

一般而言純虛擬函式的函式體是預設的,但是也可以給出純虛擬函式的函式體(此時純虛擬函式變為虛擬函式),這一點經常被人們忽視,呼叫純虛擬函式的方法為baseclass::virtual function.

6樓:可以叫我表哥

以下哪個基bai類中du

的成員函zhi數表示純虛函dao數?(

內ab)

容a.virtual void vf( int)b.void vf(int) =0

c.virtual void vf( =0)d.virtual void yf(int){}

抽象類中的已經宣告一個方法=0為純虛擬函式,其他方法不宣告=0,有區別嗎?

7樓:匿名使用者

一個是虛擬函式,一個是純虛擬函式。另外你的函式忘寫返回值了。。純虛擬函式可以讓類先具有一個操作名稱,而沒有操作內容,讓派生類在繼承時再去具體地給出定義。

凡是含有純虛擬函式的類叫做抽象類。這種類不能宣告物件,只是作為基類為派生類服務。除非在派生類中完全實現基類中所有的的純虛擬函式,否則,派生類也變成了抽象類,不能例項化物件。

8樓:匿名使用者

修改之前

virtual fun1();

virtual fun2();

這兩個函式在基類中還是需要實現的。

修改後,變成純需函式,所以不用實現了。

c++中,純虛擬函式是沒有實現體的虛擬函式 這個選項為什麼錯?錯在哪了呢?

9樓:匿名使用者

純虛擬函式只是在基類沒有函式體,在其子類或者說派生類還是要有函式體的。

純虛擬函式是一種特殊的虛擬函式,在許多情況下,在基類中不能對虛擬函式給出有意義的實現,而把它宣告為純虛擬函式,它的實現留給該基類的派生類去做。這就是純虛擬函式的作用。

純虛擬函式可以讓類先具有一個操作名稱,而沒有操作內容,讓派生類在繼承時再去具體地給出定義。凡是含有純虛擬函式的類叫做抽象類。這種類不能宣告物件,只是作為基類為派生類服務。

除非在派生類中完全實現基類中所有的的純虛擬函式,否則,派生類也變成了抽象類,不能例項化物件。

一般而言純虛擬函式的函式體是預設的,但是也可以給出純虛擬函式的函式體(此時純虛擬函式變為虛擬函式),這一點經常被人們忽視,呼叫純虛擬函式的方法為baseclass::virtual function.

以上是大部分是比較官方的解釋,其實就你這個題而言,個人感覺出題人有點玩文字遊戲了,因為這個選項說他對也有道理,因為在宣告的類裡確實沒有定義,當然也可以認為他是錯的,理由就是上面這些了。

c++選擇題 就1道題3個選項 所以要給出這三個選項的詳細解釋哦 只要認真答,分很好拿。

10樓:匿名使用者

純虛擬函式是可以是有函式體定義的,所以 a 是錯誤。

純虛擬函式的宣告必須要以內 = 0 結束,所以 b 是正確。

派生類不一容定需要實現基類的純虛擬函式,如果基類的純虛擬函式有定義,那麼可以不用實現,所以 c 是錯誤。

11樓:註冊成功

在許多情況下,在bai基類du中不能對虛擬函式

zhi給出有意義的實

現,而把dao它宣告為純虛

c++ 純虛擬函式

12樓:匿名使用者

純虛擬函式就是抽象類函式。宣告是virtual void fn()=0; 沒有實現體的函式。

13樓:春雨_潤物

補充一點,含有純虛擬函式的類是抽象類

14樓:匿名使用者

純虛擬函式是一種特du殊的虛函zhi數,它的一般格式dao如下:

專class 《類名》   屬

;  在許多情況下,在基類中不能對虛擬函式給出有意義有實現,而把它說明為純虛擬函式,它的實現留給該基類的派生類去做。這就是純虛擬函式的作用。   純虛擬函式可以讓類先具有一個操作名稱,而沒有操作內容,讓派生類在繼承時再去具體地給出定義。

凡是含有純虛擬函式的類叫做抽象類。這種類不能宣告物件,只是作為基類為派生類服務。在派生類中必須完全實現基類的純虛擬函式,否則,派生類也變成了抽象類,不能例項化物件

15樓:衄潲

純虛擬函式就是沒有函式體的函式。比如virtual void shape()=0;

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

16樓:

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

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

派生類中完全實現基類中所有的的純虛擬函式,但還是有錯誤 不能例項化抽象類

還有個純虛的解構函式。個人建議將抽象類的解構函式弄成虛的就行的,沒必要純虛!派生類中完全實現基類中所有的的純虛擬函式,否則,派生類也變成了抽象類,不能例項化物件什麼意思?基類中有純虛擬函式,如virtual int fun 0 在派生類中要實現 這個純虛擬函式。如果派生類中沒有實現這個函式,那麼等於...

VC 中為什麼要用類 包括派生類,為什麼要派生

這個問題說起來挺複雜的,不過值得慶幸的是,在大多數c 語言教材裡,都有明確的闡述,如 the c programming language c how to program 建議你看一下。如果不太方便,我也很樂意闡述一下我的理解,因為不想複製網上的,有欺騙樓主的感覺。舉個例子,建立一個基類 shap...

在派生類中重新定義虛擬函式時除了面其

d基類中的虛擬函式可以不做任何事的,在派生類中重新定義虛擬函式,即具體操作交給派生類。操作內容 只有操作內容可以不一樣,而引數型別,函式型別,引數個數均要一樣。物件導向程式設計的簡單問題 求解答 以下題目全部單選,錯誤選項已經被我去掉 1.b 2.d 3.a 4.d 5.c 6.b 7.c 8.b ...