帶有虛擬函式的類能被例項化嗎,凡是包含純虛擬函式的類都是抽象類。

2021-03-03 20:53:28 字數 1414 閱讀 5498

1樓:高質量團賽

指標的型別是可以強行轉來轉去的。普通情況你轉什麼型別就調對應型別版的同名函式。但是虛函權數實現多型後,儘管可能你把指標轉成父類的型別,但是因為建立的時候是子類的型別,它還是會呼叫子類的這個虛擬函式。

這樣可以統一**且正確運用子類的新特性。

也因為如此,如果父類虛擬函式不做實現而=0成為純虛擬函式,那麼父類就不可以例項化,這個沒有實現的虛擬函式也永遠不會呼叫。因為根據多型的動態聯編,總是會呼叫例項化了的子類的該方法。指標強行轉成父類也不會呼叫純虛擬函式。

2樓:匿名使用者

可以但是介面類,就是全部虛擬函式的類不能被例項化

3樓:張勇

可以。。抽象類不能例項化物件,抽象類就是類裡面有純虛擬函式的類。。

4樓:匿名使用者

可以,但沒看懂你的程式,你寫的pstaff是指向什麼型別的指標?

在c++類中,有一種類不能生成物件只能被繼承,稱之為虛基類還是抽象類???

5樓:匿名使用者

在c++類中,有一種類不能生成物件只能被繼承,稱之為________。

答案應該是 「抽象類」 或者 「包含純虛擬函式的類」 。

6樓:匿名使用者

兩個概念沒有直接等價關係

抽象類不能被例項化,裡面一定包含純虛擬函式

虛基類是虛繼承的父類,class b:virtual a{}; a是虛基類

7樓:匿名使用者

可以回答抽象類/純虛類,含有純虛擬函式的類。

class a;

c++中虛擬函式必須有定義嗎?

8樓:呵呵

需要例項化類的虛擬函式必須有定義,而僅僅定義帶有虛擬函式的類且虛擬函式沒有實現,該類編譯是可以通過的!

純虛擬函式出現在介面類中,並賦值為0,不要為該函式分配函式地址,從而阻止類的例項化!純虛擬函式是沒有定義的,如果實現了也不是純虛擬函式啦!

一般的成員函式可以只有宣告,前提是在應用中不能呼叫該函式,否則會因找不到定義產生連線錯誤!

凡是包含純虛擬函式的類都是抽象類。

9樓:匿名使用者

個人覺bai得是對的,包含純du

虛擬函式的類就是一個抽

象類zhi,抽象類不能

dao被例項化,而純虛函專數也不能在抽象類中屬被定義,只能由子類實現,所以無法呼叫。

類可以包含純虛擬函式和其他函式,但只有要一個純虛擬函式的存在,這個類就被認為是抽象類,因此抽象類的定義與他的內容並不衝突。

10樓:匿名使用者

這個是「有」和「都是」的問題

抽象類是其中有純虛擬函式,不是都是純虛擬函式

C中父類的虛擬函式必須要實現嗎

虛擬函式是自帶實現的,因此派生類中可以選擇實現自己的,也可以直接使用基版類的。但是純虛擬函式一般權未提供實現,所以派生類基本需要提供實現,但是即使基類提供了預設實現,如果派生類需要進行例項化,那麼派生類還是需要提供實現的。你可以定義純虛擬函式,這部需要實現 c 中虛擬函式必須有定義嗎?需要例項化類的...

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

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

為什麼當成員函式被宣告為虛擬函式後,它的派生類中同名的函式都會自動生成為虛擬函式

龍生九copy子,各不相同 因為基bai類函式宣告為虛擬函式後,編譯器會增加一du個虛擬函式表,建立一 zhi種對映關係,dao 就是每個類的物件都指向自己對應的那個函式,即使使用的是基類的指標,通過該表可以查詢出來 同名,同引數,同返回值 因為繼承了唄。你重寫override 即可 c 使用虛擬函...