日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

c 子类对象 访问父类对象受保护成员_C++日志(三十四)子类同名成员与作用域分辨符...

發布時間:2023/12/15 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c 子类对象 访问父类对象受保护成员_C++日志(三十四)子类同名成员与作用域分辨符... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在繼承中,如果子類新增成員和父類成員的名稱相同,那么就需要辨別訪問的是子類成員還是父類成員。

1、什么是作用域分辨符?

C++中,作用域分辨符由“::”表示,其作用是限定所訪問成員所在的類。作用域標識符的使用語法如下:

類名

2、什么是隱藏規則?

對于具有包含關系的作用域:

  • 如果內層和外層聲明了同名標識符,那么外層標識符在內層中不可見,即隱藏規則;
  • 如果內層沒有聲明和外層同名標識符,那么外層標識符在內層可見;

根據同名隱藏規則,子類聲明和父類同名的成員時,將導致父類的成員被隱藏(子類聲明的同名函數和父類同名函數參數表不同也被隱藏,即重載形式也被隱藏)。此時,則需要使用作用域標識符進行限定成員所屬的父類。

3、子類使用作用域標識符訪問父類成員

考慮一般的情況,即子類繼承自父類,父類又繼承自父類,即多級繼承。此時,如果子類對象想要訪問任一級父類的同名成員,則需要使用作用域標識符。

下面的例子中,類Z繼承自類Y,類Y繼承自類X,并且X、Y、Z三個類都含有同名函數成員get()和同名數據成員value:

class

現在,如果子類Z的對象想要訪問X或者Y的同名成員函數,則需要使用作用域標識符,如下:

Z

4、使用using將一個作用域的標識符引入到另一個作用域

除去上述作用域標識符以外,子類還可以通過使用using引入父類的同名標識符。using最常用的情況是:子類新增同名函數和父類同名函數的參數不同時(即重載形式),子類對象可以直接通過參數表,告訴編譯器需要訪問的同名函數屬于子類還是父類。

class

通過子類對象z調用get函數時,編譯器根據參數形式不同,可以區分出調用的函數屬于X還是屬于Y。此時,get()和get(int)相當于子類重載的兩個函數。

總結

以上是生活随笔為你收集整理的c 子类对象 访问父类对象受保护成员_C++日志(三十四)子类同名成员与作用域分辨符...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。