亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

內部類可以訪問私有變量嗎?

內部類可以訪問私有變量嗎?

C++
皈依舞 2019-09-02 15:33:02
class Outer {    class Inner {    public:        Inner() {}        void func() ;    };private:    static const char* const MYCONST;    int var;};void Outer::Inner::func() {    var = 1;}const char* const Outer::MYCONST = "myconst";當我使用類Outer :: Inner'編譯時,這個錯誤輸出沒有名為`var'的成員
查看完整描述

3 回答

?
楊__羊羊

TA貢獻1943條經驗 獲得超7個贊

內部類可以訪問外部類的所有成員,但它沒有對父類實例的隱式引用(與Java的一些奇怪之處不同)。因此,如果將對外部類的引用傳遞給內部類,它可以引用外部類實例中的任何內容。


查看完整回答
反對 回復 2019-09-02
?
紅顏莎娜

TA貢獻1842條經驗 獲得超13個贊

var不是內部類的成員。


要訪問var,應使用指向外部類實例的指針或引用。例如,如果內部類是外部的朋友,則pOuter-> var將起作用,如果嚴格遵循C ++標準,則var是public。


有些編譯器將內部類視為外部的朋友,但有些可能不是。有關IBM編譯器,請參閱此文檔:


“嵌套類在另一個類的范圍內聲明。嵌套類的名稱是其封閉類的本地。除非使用顯式指針,引用或對象名稱,否則嵌套類中的聲明只能使用可見的構造,包括封閉類和全局變量中的類型名稱,靜態成員和枚舉器。


嵌套類的成員函數遵循常規訪問規則,并且對其封閉類的成員沒有特殊的訪問權限。封閉類的成員函數對嵌套類的成員沒有特殊的訪問權限?!?/p>


查看完整回答
反對 回復 2019-09-02
  • 3 回答
  • 0 關注
  • 764 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號