国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

C++ 繼承中的類(lèi)作用域

2023-06-08 20:39 作者:S-a-i_  | 我要投稿

當(dāng)存在繼承關(guān)系時(shí),派生類(lèi)的作用域嵌套在其基類(lèi)的作用域之內(nèi),也就是說(shuō)如果一個(gè)名字在派生類(lèi)中無(wú)法解析,就會(huì)繼續(xù)在外層基類(lèi)中解析。


在編譯時(shí)進(jìn)行名字查找

即使動(dòng)態(tài)對(duì)象和靜態(tài)對(duì)象可能不一致,但是我們能夠使用哪些成員是由靜態(tài)類(lèi)型決定的。

即我們使用一個(gè)基類(lèi)的指針或引用綁定一個(gè)派生類(lèi)時(shí),即使派生類(lèi)中確實(shí)含有某個(gè)成員,但是如果基類(lèi)不含有這個(gè)成員,我們使用基類(lèi)的指針或引用去調(diào)用這個(gè)成員時(shí),依舊是錯(cuò)誤的。


名字沖突與繼承

和普通函數(shù)一樣,派生類(lèi)也能重定義基類(lèi)的名字,此時(shí)定義域內(nèi)將隱藏外層作用域的名字

注:我們可以通過(guò)作用域運(yùn)算符來(lái)在派生類(lèi)的作用域內(nèi)訪(fǎng)問(wèn)被隱藏的名字。


名字查找優(yōu)先于類(lèi)型檢查

派生類(lèi)中重新定義基類(lèi)中的名字時(shí),即使派生類(lèi)的參數(shù)列表和基類(lèi)不一樣,基類(lèi)成員也會(huì)在調(diào)用時(shí)被隱藏掉。


虛函數(shù)和作用域

現(xiàn)在我們可以理解為什么基類(lèi)和派生類(lèi)的虛函數(shù)必須具有相同的參數(shù)列表了。因?yàn)槿绻麉?shù)列表不同的話(huà)我們動(dòng)態(tài)綁定時(shí),就無(wú)法用基類(lèi)的引用或指針來(lái)使用派生類(lèi)的虛函數(shù)了。

對(duì)于上面的a->fcn,由于fcn是虛函數(shù),所以編譯器會(huì)在運(yùn)行時(shí)判斷是誰(shuí)調(diào)用了他,a綁定了D1但是D1沒(méi)有覆蓋不含參數(shù)的版本,所以編譯器會(huì)在外層的Base中調(diào)用fcn。

而對(duì)于非虛函數(shù)

b的fcn為非虛函數(shù)所以直接調(diào)用D1的fcn(int),c調(diào)用D2的fcn(int)


容器和繼承

容器中不允許使用不同類(lèi)型的元素,所以我們不能把具有繼承關(guān)系的多種類(lèi)型對(duì)象存放在容器中。

如果我們使用基類(lèi)類(lèi)型為容器的元素,那么派生類(lèi)的對(duì)象放置在容器中時(shí)他就不再是派生類(lèi)對(duì)象了,它的派生部分將會(huì)被忽略。


在容器中存放指針而非對(duì)象

我們可以把一個(gè)派生類(lèi)的智能指針轉(zhuǎn)換為基類(lèi)的智能指針。

C++ 繼承中的類(lèi)作用域的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
友谊县| 石家庄市| 平潭县| 西和县| 镇江市| 长沙县| 西宁市| 修水县| 瑞金市| 沙湾县| 桦川县| 收藏| 江源县| 吴桥县| 屏边| 客服| 正镶白旗| 上栗县| 盘锦市| 茶陵县| 兰州市| 灵丘县| 大埔区| 礼泉县| 古浪县| 双桥区| 西吉县| 奉新县| 大足县| 那坡县| 阳山县| 广汉市| 裕民县| 乾安县| 呼玛县| 原阳县| 清苑县| 曲阳县| 宁陵县| 仁布县| 墨脱县|