五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(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ó)家法律
津市市| 旌德县| 浑源县| 赤峰市| 肇东市| 保靖县| 化州市| 修武县| 长兴县| 河源市| 鄄城县| 龙井市| 义马市| 磐安县| 德安县| 兰考县| 隆尧县| 合肥市| 土默特左旗| 海安县| 林周县| 巫溪县| 长垣县| 竹溪县| 平度市| 肇州县| 淮安市| 河源市| 读书| 昌宁县| 建昌县| 二连浩特市| 彭水| 温州市| 莱阳市| 额敏县| 拉孜县| 中宁县| 晋宁县| 濮阳市| 三台县|