最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(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ó)家法律
武宁县| 监利县| 张掖市| 湄潭县| 镇远县| 郁南县| 鹤山市| 介休市| 江门市| 黄龙县| 上杭县| 六枝特区| 云和县| 刚察县| 乐东| 凉山| 锦屏县| 石林| 陆河县| 化隆| 定州市| 山阳县| 伽师县| 巴楚县| 永登县| 镇平县| 自治县| 女性| 曲阜市| 仙桃市| 海丰县| 克什克腾旗| 万全县| 修文县| 张北县| 江西省| 霍城县| 怀化市| 广南县| 江华| 巴塘县|