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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

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

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

C++
一只甜甜圈 2019-02-19 13:12:50
C++中虛函數(shù)的作用是什么?它應(yīng)該怎么用呢?
查看完整描述

2 回答

?
繁花如伊

TA貢獻(xiàn)2012條經(jīng)驗(yàn) 獲得超12個(gè)贊

虛函數(shù)的作用:

允許在派生類中重新定義與基類同名的函數(shù),并且可以通過(guò)基類指針或引用來(lái)訪問(wèn)基類和派生類中的同名函數(shù)。

虛函數(shù)的使用方法是:

1.在基類用virtual聲明成員函數(shù)為虛函數(shù)可以在派生類中重新定義此函數(shù),為它賦予新的功能,并能方便地被調(diào)用。

在類外定義虛函數(shù)時(shí),不必再加virtual。

2.在派生類中重新定義此函數(shù),要求函數(shù)名、函數(shù)類型、函數(shù)參數(shù)個(gè)數(shù)和類型全部與基類的虛函數(shù)相同,并根據(jù)派生類的需要重新定義函數(shù)體。

在派生類重新聲明該虛函數(shù)時(shí),可以加virtual,也可以不加,但習(xí)慣上一般在每一層聲明該函數(shù)時(shí)都加virtual,使程序更加清晰。

3.如果在派生類中沒(méi)有對(duì)基類的虛函數(shù)重新定義,則派生類簡(jiǎn)單地繼承其直接基類的虛函數(shù)。

4.定義一個(gè)指向基類對(duì)象的指針變量,并使它指向同一類族中需要調(diào)用該函數(shù)的對(duì)象。

通過(guò)該指針變量調(diào)用此虛函數(shù),此時(shí)調(diào)用的就是指針變量指向的對(duì)象的同名函數(shù);

虛函數(shù)與指向基類對(duì)象的指針變量的配合使用,就能方便地調(diào)用同一類族中不同類的同名函數(shù),只要先用基類指針指向即可。

擴(kuò)展資料:

C++中虛函數(shù)的總結(jié)

1、如果期望派生類重新定義一個(gè)成員函數(shù),應(yīng)該在基類中把此函數(shù)設(shè)為virtual。

2.以一個(gè)單一指令調(diào)用不同函數(shù),這種性質(zhì)成為多態(tài)(polymorphism);

虛擬函數(shù)是C++語(yǔ)言的多態(tài)性質(zhì)以及動(dòng)態(tài)綁定的關(guān)鍵。

3.抽象類中的虛函數(shù)不打算被調(diào)用,不應(yīng)該定義它,應(yīng)該把它設(shè)置為純虛函數(shù)(在函數(shù)聲明之后加上'=0'即可);

擁有純虛函數(shù)者為抽象類,以別于所謂的具體類;

抽象類不能產(chǎn)出對(duì)象實(shí)例,但是我們可以擁有指向抽象類的指針,以便于操作抽象類中的各個(gè)派生類。

4.虛函數(shù)派生下去仍為虛函數(shù),而且可以省略virtual關(guān)鍵字。


 


查看完整回答
反對(duì) 回復(fù) 2019-03-03
?
眼眸繁星

TA貢獻(xiàn)1873條經(jīng)驗(yàn) 獲得超9個(gè)贊

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

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

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

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

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

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

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

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

擴(kuò)展資料:

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

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

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

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

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

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

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

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

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

 

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

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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