1樓:匿名使用者
d基類中的虛擬函式可以不做任何事的,在派生類中重新定義虛擬函式,即具體操作交給派生類。
2樓:匿名使用者
操作內容 。
只有操作內容可以不一樣,而引數型別,函式型別,引數個數均要一樣。
物件導向程式設計的簡單問題~求解答 以下題目全部單選,錯誤選項已經被我去掉
3樓:笨a小孩
1. b
2. d
3. a
4. d
5. c
6. b
7. c
8. b
9. c
10. b
11. c
12. d
13. a
14. c
15. d
16. a
17. d
如果哪個有問題,可以隨時交流
關於c++派生類中虛擬函式的問題
4樓:匿名使用者
如果是虛擬函式的話,在派生類中重新定義其函式體時,不會導致同名覆蓋.當用基類指標指向派生類物件並呼叫虛擬函式時,執行的是在派生類中重新定義的虛擬函式的函式體.
5樓:匿名使用者
虛擬函式必須要在基類用virtual修飾才能為虛擬函式,派生類若重定義該函專數,則無論是否有屬virtual關鍵字都是虛擬函式。你要判斷派生類中沒有用virtual定義的函式是否為虛擬函式,則可以:在該函式標誌特定的輸出,如cout<<"virtual function!
";然後定義一個基類的指標bp,指向新new的派生類物件,然後用bp呼叫所需判斷的函式,看是否有輸出特定的標誌virtual function!,如果正確輸出則說明是虛擬函式,其他情況則表明該函式不是虛擬函式。
6樓:匿名使用者
一旦一個函式被宣告為虛擬函式,那麼他從該點之後的繼承層次結構中都是虛擬函式,不管它在有
版沒有再次聲
權明是不是虛擬函式,有些程式設計師為了提高程式的清晰度,在繼承結構中喜歡再次明確的宣告這些虛擬函式.
至於「判定覆蓋的依據是兩者都是虛擬函式,發生在派生類與基類之間。」只是解釋了什麼是覆蓋,派生類將基類中的虛擬函式重寫即為覆蓋。
7樓:匿名使用者
想用虛擬函式是:基類、父類都要定義成virtual型別的
8樓:檀木妍
比如b是一個派生類,f是b裡面一個函式。
先去b的基類裡找,如果發現f原來在某個基類中有的專,看基類中f是不是虛函屬
數,如果是,那不管b中f有沒有virtual都是虛擬函式。
如果在基類中沒有發現f的原型,則就看b中f自己有沒有virtual了,有就是,沒有就不是。
9樓:匿名使用者
虛幻數必須要用上virtual!!你那本書喜歡玩文字遊戲!!是不是出自 天回 朝 的?!試試下面**,你就
答能領悟如何判斷是否用了虛幻數:
//虛擬函式的特性如下!!
#include "stdafx.h"
#include
using namespace std;
class a
};class b: public a};//由於此處引數定義的原因,show(b);效果與(*aa).a();一樣。
void show(a &a)
void main()
如果派生類中沒有對基類的虛擬函式進行重定義,則它繼承基類中的()
10樓:匿名使用者
dd動態聯編是指函覆數制編譯時先不確定具體呼叫一個繼承函式鏈上的哪一個函式,而留到程式執行時再決定,這樣編譯時在函式呼叫的地方就要多儲存一個函式地址的連結串列(或類似結構),執行函式時也多了一個判斷具體呼叫哪一個函式的過程,效率當然比普通的靜態聯編來得低
VC 中為什麼要用類 包括派生類,為什麼要派生
這個問題說起來挺複雜的,不過值得慶幸的是,在大多數c 語言教材裡,都有明確的闡述,如 the c programming language c how to program 建議你看一下。如果不太方便,我也很樂意闡述一下我的理解,因為不想複製網上的,有欺騙樓主的感覺。舉個例子,建立一個基類 shap...
派生類中完全實現基類中所有的的純虛擬函式,否則,派生類也變成了抽象類,不能例項化物件什麼意思
基類中有純虛擬函式,如virtual int fun 0 在派生類中要實現 這個純虛擬函式。如果派生類中沒有實現這個函式,那麼等於派生類中也有了,virtual int fun 0 那麼派生類也變成了抽象類,不能例項化。抽象類 有純函式的類。純虛擬函式就是隻有宣告且 0的 派生類就是它的子類嘛,如果...
派生類中完全實現基類中所有的的純虛擬函式,但還是有錯誤 不能例項化抽象類
還有個純虛的解構函式。個人建議將抽象類的解構函式弄成虛的就行的,沒必要純虛!派生類中完全實現基類中所有的的純虛擬函式,否則,派生類也變成了抽象類,不能例項化物件什麼意思?基類中有純虛擬函式,如virtual int fun 0 在派生類中要實現 這個純虛擬函式。如果派生類中沒有實現這個函式,那麼等於...