1樓:匿名使用者
還有個純虛的解構函式。。。個人建議將抽象類的解構函式弄成虛的就行的,沒必要純虛!
派生類中完全實現基類中所有的的純虛擬函式,否則,派生類也變成了抽象類,不能例項化物件什麼意思?
2樓:匿名使用者
基類中有純虛擬函式,如virtual int fun() = 0;
在派生類中要實現 這個純虛擬函式。
如果派生類中沒有實現這個函式,那麼等於派生類中也有了,virtual int fun() = 0;
那麼派生類也變成了抽象類,不能例項化。
抽象類:有純函式的類。
3樓:匿名使用者
純虛擬函式就是隻有宣告且=0的
派生類就是它的子類嘛,如果沒有完全實現父抽象類(完全抽象類)中的所有抽象方法(虛方法與純屬虛方法),那麼子類就成一個抽象類。
抽象類是不能直接例項化的。
這裡的抽象意思就是不是實際的。沒有完全實現的。或者說還是半成品。
c++中,純虛擬函式是沒有實現體的虛擬函式 這個選項為什麼錯?錯在哪了呢?
4樓:匿名使用者
純虛擬函式只是在基類沒有函式體,在其子類或者說派生類還是要有函式體的。
純虛擬函式是一種特殊的虛擬函式,在許多情況下,在基類中不能對虛擬函式給出有意義的實現,而把它宣告為純虛擬函式,它的實現留給該基類的派生類去做。這就是純虛擬函式的作用。
純虛擬函式可以讓類先具有一個操作名稱,而沒有操作內容,讓派生類在繼承時再去具體地給出定義。凡是含有純虛擬函式的類叫做抽象類。這種類不能宣告物件,只是作為基類為派生類服務。
除非在派生類中完全實現基類中所有的的純虛擬函式,否則,派生類也變成了抽象類,不能例項化物件。
一般而言純虛擬函式的函式體是預設的,但是也可以給出純虛擬函式的函式體(此時純虛擬函式變為虛擬函式),這一點經常被人們忽視,呼叫純虛擬函式的方法為baseclass::virtual function.
以上是大部分是比較官方的解釋,其實就你這個題而言,個人感覺出題人有點玩文字遊戲了,因為這個選項說他對也有道理,因為在宣告的類裡確實沒有定義,當然也可以認為他是錯的,理由就是上面這些了。
c++選擇題 就1道題3個選項 所以要給出這三個選項的詳細解釋哦 只要認真答,分很好拿。
5樓:匿名使用者
純虛擬函式是可以是有函式體定義的,所以 a 是錯誤。
純虛擬函式的宣告必須要以內 = 0 結束,所以 b 是正確。
派生類不一容定需要實現基類的純虛擬函式,如果基類的純虛擬函式有定義,那麼可以不用實現,所以 c 是錯誤。
6樓:註冊成功
在許多情況下,在bai基類du中不能對虛擬函式
zhi給出有意義的實
現,而把dao它宣告為純虛
派生類如果繼承了抽象基類中的純虛擬函式,而在該派生類中沒有對此純虛擬函式進行定義 ......
7樓:
這應該是筆誤吧,如果派生類中沒有對基類的純虛擬函式進行定義,那麼派生類自身也就成了一個抽象類,無法被例項化。如果也沒有進行宣告,那繼承下來的函式還是純虛擬函式。因為它明確地告訴了編譯器函式有操作名稱,但是指向無效地址。
如果在派生類中對基類的純虛擬函式進行了重新宣告或者定義,那麼此函式的操作指標就被指到了新的地址,如果這個新的操作地址沒有被指向0,那就不再是一個純虛擬函式,派生類也就不再是抽象類。
抽象類中的已經宣告一個方法=0為純虛擬函式,其他方法不宣告=0,有區別嗎?
8樓:匿名使用者
一個是虛擬函式,一個是純虛擬函式。另外你的函式忘寫返回值了。。純虛擬函式可以讓類先具有一個操作名稱,而沒有操作內容,讓派生類在繼承時再去具體地給出定義。
凡是含有純虛擬函式的類叫做抽象類。這種類不能宣告物件,只是作為基類為派生類服務。除非在派生類中完全實現基類中所有的的純虛擬函式,否則,派生類也變成了抽象類,不能例項化物件。
9樓:匿名使用者
修改之前
virtual fun1();
virtual fun2();
這兩個函式在基類中還是需要實現的。
修改後,變成純需函式,所以不用實現了。
15. 關於純虛擬函式和抽象類的描述中,錯誤的是( )。
10樓:匿名使用者
c如果在派生類中沒有對純虛擬函式進行了定義,那這個派生類也是抽象類.不能用來定義物件
以下哪個基類中的成員函式表示純虛擬函式
11樓:等待晴天
virtual void vf( int) 和void vf(int) =0基類中的成員函式表示純虛擬函式。
純虛擬函式是一種特殊的虛擬函式,在許多情況下,回在基類中不能對虛答函式給出有意義的實現,而把它宣告為純虛擬函式,它的實現留給該基類的派生類去做。這就是純虛擬函式的作用.
在許多情況下,在基類中不能對虛擬函式給出有意義的實現,而把它宣告為純虛擬函式,它的實現留給該基類的派生類去做。這就是純虛擬函式的作用。
純虛擬函式可以讓類先具有一個操作名稱,而沒有操作內容,讓派生類在繼承時再去具體地給出定義。凡是含有純虛擬函式的類叫做抽象類。這種類不能宣告物件,只是作為基類為派生類服務。
除非在派生類中完全實現基類中所有的的純虛擬函式,否則,派生類也變成了抽象類,不能例項化物件。
一般而言純虛擬函式的函式體是預設的,但是也可以給出純虛擬函式的函式體(此時純虛擬函式變為虛擬函式),這一點經常被人們忽視,呼叫純虛擬函式的方法為baseclass::virtual function.
12樓:可以叫我表哥
以下哪個基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){}
純虛擬函式的定義
13樓:沉珂
純虛擬函式是一種特殊的虛擬函式,它的一般格式如下:
class 《類名>
;在許多情況下,在基類中不能對虛擬函式給出有意義的實現,而把它宣告為純虛擬函式,它的實現留給該基類的派生類去做。這就是純虛擬函式的作用。
純虛擬函式可以讓類先具有一個操作名稱,而沒有操作內容,讓派生類在繼承時再去具體地給出定義。凡是含有純虛擬函式的類叫做抽象類。這種類不能宣告物件,只是作為基類為派生類服務。
除非在派生類中完全實現基類中所有的的純虛擬函式,否則,派生類也變成了抽象類,不能例項化物件。
一般而言純虛擬函式的函式體是預設的,但是也可以給出純虛擬函式的函式體(此時純虛擬函式變為虛擬函式),這一點經常被人們忽視,呼叫純虛擬函式的方法為baseclass::virtual function.
派生類中完全實現基類中所有的的純虛擬函式,否則,派生類也變成了抽象類,不能例項化物件什麼意思
基類中有純虛擬函式,如virtual int fun 0 在派生類中要實現 這個純虛擬函式。如果派生類中沒有實現這個函式,那麼等於派生類中也有了,virtual int fun 0 那麼派生類也變成了抽象類,不能例項化。抽象類 有純函式的類。純虛擬函式就是隻有宣告且 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 ...