基類某虛擬函式提供了預設值,在派生類中重新定義時能不能不提供預設值而使用基類的預設值

2021-04-19 01:29:43 字數 1245 閱讀 9219

1樓:匿名使用者

可以的bai.

只需要du以無參方式呼叫基類zhi構造即可dao.

比如內class base

};class a:public base};這樣是完全可以的容.

基類中宣告瞭虛擬函式後,派生類中對應的函式也必須宣告為虛擬函式    沒有虛擬函式,一定不能實現動態繫結的

2樓:匿名使用者

前面那句錯了,派生類不必再宣告成虛擬函式了,只要基類宣告就可以

基類宣告虛擬函式後,會建一張虛擬函式表

在派生類中重新定義虛擬函式時,除了( )方面,其他方面都必須與基類中相應的虛擬函式保持一致。

3樓:匿名使用者

d基類中的虛擬函式可以不做任何事的,在派生類中重新定義虛擬函式,即具體操作交給派生類。

4樓:匿名使用者

操作內容 。

只有操作內容可以不一樣,而引數型別,函式型別,引數個數均要一樣。

在c++中,虛擬函式可以允許在派生類中重新定義與基類的同名函式,那麼在派生類中基類的同名函式是否還存

5樓:抓狂的奶粉

還存在的

可以通過父類作用域呼叫父類的同名函式

如果派生類中沒有對基類的虛擬函式進行重定義,則它繼承基類中的()

6樓:匿名使用者

dd動態聯編是指函覆數制編譯時先不確定具體呼叫一個繼承函式鏈上的哪一個函式,而留到程式執行時再決定,這樣編譯時在函式呼叫的地方就要多儲存一個函式地址的連結串列(或類似結構),執行函式時也多了一個判斷具體呼叫哪一個函式的過程,效率當然比普通的靜態聯編來得低

c++:派生類中重定義基類的成員函式與虛擬函式區別在**?

7樓:匿名使用者

1、c++的虛擬函式主要是為了實現多型。基類定義的虛擬函式,派生類重新定義該函式,這樣基類物件指標呼叫哪一個函式是判斷該基類指標的物件的型別。

2、虛擬函式用virtual關鍵字修飾,同時開啟動態聯編技術,動態聯編只有程式執行時才能確定呼叫的函式,在編譯階段是不知道要呼叫哪一個函式。

8樓:匿名使用者

如果加關鍵字 virtual,則是 override;

如果不加關鍵字 virtual,則跟作用域有關,基類與派生類的成員函式作用域不相同。

C 虛基類問題

首先.這個不叫虛基類 這只是一個普通繼承 基類裡面有一個虛擬函式 定義a p new c p是一個a型別的指標,但實際上p指向的是一個c型別 c型別也是a型別的一種,c繼承自a p show 的時候,因為a中的是 virtual show 即虛擬函式 所以會執行c的show 函式 這就是虛擬函式的一...

c定義虛基類Shape,在Shape類的基礎上

include using namespace std class shape void shape createshape class rectangle virtual public shape rectangle rectangle float a,float b float rectangl...

c 中基類指標指向派生類時,呼叫的虛擬函式是派生類的,為什麼要這樣啊

直接用子類物件呼叫函式當然沒問題,基類指標指向派生類物件是多型性的體現。什麼是多型呢?多型就是不同物件接受相同的訊息,但是卻產生不同的行為,舉一個很簡單的例子,有一個圖形類,他有幾個派生類,如圓形,三角形,矩形。圖形類有一個函式area 用來求面積,但是由於不同圖形求面積的方法不同,要由具體的派生類...