第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

C++中虛函數(shù)的作用是什么?它應(yīng)該怎么用呢?

C++中虛函數(shù)的作用是什么?它應(yīng)該怎么用呢?

PHP
ABOUTYOU 2019-02-05 16:06:05
C++中虛函數(shù)的作用是什么?它應(yīng)該怎么用呢?
查看完整描述

2 回答

?
慕的地6264312

TA貢獻(xiàn)1817條經(jīng)驗 獲得超6個贊

C++中虛函數(shù)的作用:

1、為了方便使用多態(tài)特性,我們常常需要在基類中定義虛擬函數(shù)。

2、在很多情況下,基類本身生成對象是不合情理的。例如,動物作為一個基類可以派生出老虎、孔雀等子類,但動物本身生成對象明顯不合常理。

為了解決上述問題,引入了純虛函數(shù)的概念,將函數(shù)定義為純虛函數(shù)(方法:virtual ReturnType Function()= 0;),則編譯器要求在派生類中必須予以重寫以實現(xiàn)多態(tài)性。

同時含有純虛擬函數(shù)的類稱為抽象類,它不能生成對象。這樣就很好地解決了上述兩個問題。

C++中虛函數(shù)的用法:

比如你有個游戲,游戲里有個虛基類叫「怪物」,有純虛函數(shù) 「攻擊」。然后派生出了三個子類「狼」「蜘蛛」「蟒蛇」,都實現(xiàn)了自己不同的「攻擊」函數(shù),比如狼是咬人,蜘蛛是吐絲,蟒蛇把你纏起來。

然后出現(xiàn)好多怪物的時候就可以定義一個 虛基類指針數(shù)組,把各種怪物的指針給它,然后迭代循環(huán)的時候直接 monster[i]->attack() 攻擊玩家就行了,大概見下圖:

擴(kuò)展資料:

使用虛函數(shù)的注意事項:

一、包含虛函數(shù)的類指針列表會增大。

二、虛析構(gòu)函數(shù)

析構(gòu)函數(shù)的作用是在對象撤銷之前做必要的“清理現(xiàn)場”的工作。當(dāng)派生類的對象從內(nèi)存中撤銷的時候,會先先調(diào)用派生類的析構(gòu)函數(shù)然后再調(diào)用基類的析構(gòu)函數(shù)。

當(dāng)我們new一個臨時對象時,若基類中包含析構(gòu)函數(shù),并且定義了一個指向該基類的指針變量。

三、構(gòu)造函數(shù)不能聲明為虛函數(shù)

構(gòu)造函數(shù)不能聲明為虛函數(shù)。如果聲明為虛函數(shù),編譯器會自動報出。

四、不在析構(gòu)或者構(gòu)造過程中調(diào)用虛函數(shù)

在析構(gòu)函數(shù)或者是構(gòu)造函數(shù)中,我們絕對不能調(diào)用虛函數(shù)。即使,我們在構(gòu)造函數(shù)或者析構(gòu)函數(shù)中調(diào)用虛函數(shù),也不會下降至派生類中調(diào)用函數(shù)。



查看完整回答
反對 回復(fù) 2019-03-19
  • 2 回答
  • 0 關(guān)注
  • 2265 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號