C++虚基类成员可见性
生活随笔
收集整理的這篇文章主要介紹了
C++虚基类成员可见性
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
詳見《C++Primer》[第五版]719頁
如果繼承路徑上沒有和虛基類成員重名的成員,則不存在二義性,因為我們僅能訪問到虛基類成員。
當訪問僅有一條繼承路徑上含有和虛基類成員重名的成員,也不存在二義性。派生類的成員的優先級比基類的成員高,所以說如果沒有用名字空間強制訪問虛基類的同名成員的話,訪問訪問的就是派生類的重名成員。
當訪問含有兩條及以上路徑上含有和虛基類成員重名的成員時就會產生二義性。
例如:
B中含有成員x,D1,D2均 虛繼承 B,D繼承了D1,D2,則:
- 如果D1,D2中均不含成員x,則不存在二義性,D.x訪問的是B中的x
- 如果D1中含有x,D2中不含有,則不存在二義性,D.x訪問的是D1.x
- 如果D1,D2中均含有x,則產生二義性。
總結
以上是生活随笔為你收集整理的C++虚基类成员可见性的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LOL延迟不高,但是很卡,前期是正常的,
- 下一篇: 原神奇馈宝箱刷新在什么位置