青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

C++研究

C++細節深度探索及軟件工程

  C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
  37 隨筆 :: 0 文章 :: 74 評論 :: 0 Trackbacks

 嵌套類的訪問問題:

記得白鳳煮的C++中有一句這樣的話:C++嵌套類只是語法上的嵌套。然而在實踐過程中,卻并非如此。
Ex:

class A
{
public:  
    
static int a;
    
class A1
    
{
        
void output()
        
{
          cout
<<a<<endl; //instead of A::a;
        }

    }
;
  
}
;
int A::a;


可見,類 A1 嵌入A后訪問A的靜態變量不寫外圍域沒有任何問題,從編譯的角度看,此時位于A::的作用域內,在符號表中是可以找到a的(注意,a必須為static的)。這一點,與分開寫的兩個類明顯不同

天津大學計算機學院 常興龍 MSN: cxl82116@msn.com

還有一個特殊之處,見如下代碼:

 

Ex:

class A
{
private:
    
int a;
    
class A1
    
{
        
void output(A aObject)
        
{
          cout
<<aObject.a<<endl; //instead of A::a;
        }

    }
;
  
}
;





這段代碼在VC中不能編譯通過,但在DEV-C++是可以的,也就是不同的編譯對于嵌套類是否能訪問外圍類的私有成員的定義是不一致的。

嵌套類的不同作用域同名問題:

class A
{
public:  
    
static int a;
    
class A1
    
{
        
static int a;
        
int    void output()
        
{
          cout
<<a<<endl; //instead of A::a;
        }

    }
;
  
}
;
int A::a=3;
int A::A1::a=4;


輸出內部的a沒有問題,如果要訪問外部的,使用A::a指明作用域就可以,而且在嵌套類中,可以定義靜態的成員。
用類似A::A1::a就可以訪問.
先看一下Java的情況
Ex:

//this is a Java class 
class A
{
    
private int c=2;
    
class A1
    
{
        
int c=3;
        
void output()
        
{
            System.
out.println(this.c);
            System.
out.println(A.this.c);
        }

    }

}



由定義就可看出,Java的定義是動態定義的,是基于this指針的,因此,嵌套類不只在語法上,在語義上也有隸屬關系,外圍類的成員,包含私有成員,對于內部類也是可見的。因此內部非Static的類不能有Static成員,且這樣的內部類只有在外層的對象建立后才能對建立,所以你可以這么建立對象:
Ex:

 A a = new A();
 A.A1 aa = a.new A1();

或者:
Ex:
 
A.A1 aa = new A().new A1(); //使用匿名對象

如果是靜態嵌套類
Ex:

 


//this is a Java class 
class A
{
    
private int c=2//(1)
    static class A1
    
{
      
static int c=3;
        
void output()
        
{
            
//System.out.println(this.c); //work well <--> A.A1.c; 這個結果由編譯靜態成生和動態加載相對地址理論輕松解釋
            
//System.out.println(A.this.c);// (can't work) ,很明顯要求外圍對象存在,把(1)改成static 的可以通過
            System.out.println(c);  //work well 
        }

    }

}



對比上面Java的定義,可見C++中的黓認行為和Java中的靜態類相似,由此,可以猜出C++中的類是做靜態存儲的。因此,可以輕松的得出如下語句也是可以的:


Ex:
//C++
A::A1 * a = new A::A1();

 

因此,也可以得到在 C++ 中 ,內部類也是可以有靜態對象的。

posted on 2007-05-23 02:23 常興龍 閱讀(7818) 評論(3)  編輯 收藏 引用

評論

# re: 有關 C++ 嵌套類 2007-05-23 06:50 飯中淹
試試便知。

我以前看過書上說類中類算是友元類,不應該能訪問私有,可以訪問保護。  回復  更多評論
  

# re: 有關 C++ 嵌套類 2007-06-10 17:46 黃大仙
好  回復  更多評論
  

# re: 有關 C++ 嵌套類 2008-10-05 14:57 老穆
好!!  回復  更多評論
  

> hi的博客
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            国产精品一区二区三区四区五区 | 久久久91精品国产一区二区精品| 亚洲人成在线观看| 欧美成人a视频| 一本久久a久久精品亚洲| 日韩视频在线观看国产| 国产伦精品一区| 久久精品五月| 欧美交受高潮1| 午夜免费日韩视频| 久久午夜电影| 亚洲女性喷水在线观看一区| 欧美专区第一页| 一区二区成人精品| 午夜伦理片一区| 亚洲欧洲视频| 亚洲一区二区三| 亚洲激情综合| 亚洲一区视频在线| 亚洲黄色大片| 性欧美video另类hd性玩具| 亚洲国产精品久久久久秋霞影院| 日韩一区二区久久| 狠狠综合久久av一区二区老牛| 亚洲清纯自拍| 黄色成人在线网址| 中国成人黄色视屏| 亚洲国产精品一区二区第四页av| 在线亚洲激情| 亚洲精品国产欧美| 欧美在线地址| 校园春色国产精品| 亚洲高清av在线| 国产精品素人视频| 亚洲激情专区| 一区二区三区在线看| 在线视频一区观看| 99热这里只有成人精品国产| 久久久一本精品99久久精品66| 亚洲欧美日韩人成在线播放| 欧美激情精品久久久久久久变态| 久久久久久久久久码影片| 欧美视频在线观看一区二区| 亚洲国产精品传媒在线观看| 一区二区三区中文在线观看| 欧美一区二区三区在线观看| 亚洲欧美日韩国产中文| 欧美日韩福利| 亚洲国内高清视频| 亚洲国产老妈| 六月婷婷久久| 欧美激情久久久久| 91久久黄色| 欧美成人精品h版在线观看| 另类人畜视频在线| 韩国三级电影一区二区| 欧美在线视频一区二区| 欧美一区午夜精品| 国产农村妇女精品| 午夜精品久久久久久| 欧美一区免费视频| 国产丝袜美腿一区二区三区| 欧美一区二区三区在线看| 欧美在线免费视屏| 国产在线观看精品一区二区三区| 午夜一区二区三区不卡视频| 久久激情五月激情| 一区在线影院| 男人的天堂亚洲在线| 欧美激情一区二区三区成人| 亚洲国内自拍| 欧美日韩小视频| 国产精品99久久久久久久久| 欧美自拍偷拍| 怡红院精品视频在线观看极品| 久久久久一区二区三区四区| 欧美88av| 正在播放亚洲一区| 国产毛片精品视频| 久久综合久久综合久久综合| 亚洲精品人人| 午夜精品影院| 亚洲第一福利视频| 欧美日韩免费高清一区色橹橹| 一区二区电影免费观看| 久久福利毛片| 亚洲精品一区二区三| 欧美午夜不卡视频| 久久精品国产精品亚洲精品| 亚洲第一区在线观看| 亚洲视频一区二区| 国产一区二区三区久久久久久久久| 久久综合精品一区| 中日韩在线视频| 裸体素人女欧美日韩| 在线中文字幕不卡| 韩日欧美一区二区三区| 欧美日韩国产va另类| 亚洲男人av电影| 亚洲激情二区| 久久久噜噜噜久久久| 中文一区二区| 亚洲国产欧美不卡在线观看| 国产精品久久久久久久久免费樱桃 | 亚洲一区成人| 亚洲高清视频中文字幕| 欧美视频一区二区三区在线观看| 久久久不卡网国产精品一区| 一区二区日韩伦理片| 亚洲福利精品| 久久天堂av综合合色| 亚洲免费在线播放| 亚洲精品在线电影| 在线播放豆国产99亚洲| 国产精品久久久久aaaa九色| 男人的天堂亚洲在线| 久久久国产视频91| 欧美一级播放| 亚洲一区亚洲| 一本大道久久a久久精品综合 | 一区二区三区日韩欧美精品| 悠悠资源网亚洲青| 国产女人水真多18毛片18精品视频| 欧美福利专区| 老牛嫩草一区二区三区日本| 羞羞视频在线观看欧美| 亚洲自拍偷拍麻豆| 亚洲视频在线一区观看| 亚洲美女视频网| 亚洲欧洲日产国产网站| 欧美国产视频在线观看| 免播放器亚洲| 蘑菇福利视频一区播放| 免费成人网www| 男女激情视频一区| 免费成人高清| 欧美国产精品va在线观看| 蜜月aⅴ免费一区二区三区| 另类尿喷潮videofree| 美日韩精品免费观看视频| 久久蜜臀精品av| 免费在线亚洲| 欧美激情精品久久久久| 亚洲国产一区二区视频| 亚洲三级免费电影| 亚洲精选久久| 亚洲视频一区二区免费在线观看| 一区二区三区回区在观看免费视频| 亚洲精品色图| 亚洲男女自偷自拍| 欧美一区二视频| 久久男女视频| 欧美国产日本在线| 欧美日韩国产精品成人| 国产精品丝袜xxxxxxx| 国产一区清纯| 亚洲日本中文字幕区| 一区二区三区四区国产精品| 亚洲欧美成人网| 久久久久久伊人| 亚洲黄色大片| 亚洲在线观看视频网站| 久久成人免费日本黄色| 欧美69视频| 国产精品第一区| 极品少妇一区二区三区| 亚洲老司机av| 欧美在线一二三区| 亚洲福利av| 亚洲自拍偷拍福利| 美国十次了思思久久精品导航| 欧美日韩p片| 国产亚洲欧美aaaa| 99v久久综合狠狠综合久久| 午夜一区在线| 亚洲第一狼人社区| 亚洲男女自偷自拍图片另类| 蜜臀av一级做a爰片久久| 欧美性一区二区| 亚洲第一色中文字幕| 亚洲欧美另类国产| 亚洲福利一区| 免费亚洲电影在线观看| 久久影视精品| 中文一区在线| 免费人成网站在线观看欧美高清| 国产精品免费电影| 99re成人精品视频| 美女成人午夜| 午夜精品久久99蜜桃的功能介绍| 美日韩精品免费| 国产一区二区三区在线观看免费| 一区二区欧美在线| 欧美激情按摩| 久久久www成人免费无遮挡大片| 欧美日韩中文字幕在线视频| 在线日韩电影| 蜜臀av国产精品久久久久| 亚洲性图久久| 欧美性猛交xxxx免费看久久久|