• <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>

            C++ Programmer's Cookbook

            {C++ 基礎(chǔ)} {C++ 高級} {C#界面,C++核心算法} {設(shè)計模式} {C#基礎(chǔ)}

            C++局部類和嵌套類的區(qū)別

             局部類

              在一個函數(shù)體內(nèi)定義的類稱為局部類。局部類中只能使用它的外圍作用域中的對象和函數(shù)進行聯(lián)系,因為外圍作用域中的變量與該局部類的對象無關(guān)。局部類不能被外部所繼承。在定義局部類時需要注意:局部類中不能說明靜態(tài)成員函數(shù),并且所有成員函數(shù)都必須定義在類體內(nèi)。在實踐中,局部類是很少使用的。下面是一個局部類的例子。
              int a;
              
            void fun()
              
            {
              
            static int s;
              
            class A
              
            {
                
            public:
                
            void init(int i) { s = i; }
              }
            ;
              A m;
              m.init(
            10);
              }


            局部類的另一個用途是用來實現(xiàn)類型轉(zhuǎn)化,如下代碼:

            class Interface
            {
            public:
               
            virtual void Fun() = 0;  
            }
            ;

            template 
            <class T, class P>
            Interface
            * MakeAdapter(const T& obj, const P& arg)
            {
                
            int x;
               
            class Local : public Interface
               
            {
               
            public:
                  Local(
            const T& obj, const P& arg)
                     : obj_(obj), arg_(arg) 
            {}
                  
            virtual void Fun()
                  
            {
                      x 
            = 100;
                     obj_.Call(arg_);
                  }

               
            private:
                  T obj_;
                  P arg_;
               }
            ;
               
            return new Local(obj, arg);
            }


              嵌套類


              在一個類中定義的類稱為嵌套類,定義嵌套類的類稱為外圍類。

              定義嵌套類的目的在于隱藏類名,減少全局的標識符,從而限制用戶能否使用該類建立對象。這樣可以提高類的抽象能力,并且強調(diào)了兩個類(外圍類和嵌套類)之間的主從關(guān)系。下面是一個嵌套類的例子:

             class A
              
            {
               
            public:
                
            class B
                
            {
                
            public:
                  …
                
            private:
                  …
                }
            ;
                
            void f();
                
            private:
                
            int a;
              }




               其中,類B是一個嵌套類,類A是外圍類,類B定義在類A的類體內(nèi)。

              對嵌套類的若干說明:

              1、從作用域的角度看,嵌套類被隱藏在外圍類之中,該類名只能在外圍類中使用。如果在外圍類的作用域內(nèi)使用該類名時,需要加名字限定。

              2、從訪問權(quán)限的角度來看,嵌套類名與它的外圍類的對象成員名具有相同的訪問權(quán)限規(guī)則。不能訪問嵌套類的對象中的私有成員函數(shù),也不能對外圍類的私有部分中的嵌套類建立對象。

              3、嵌套類中的成員函數(shù)可以在它的類體外定義。

              4、嵌套類中說明的成員不是外圍類中對象的成員,反之亦然。嵌套類的成員函數(shù)對外圍類的成員沒有訪問權(quán),反之亦然。國此,在分析嵌套類與外圍類的成員訪問關(guān)系時,往往把嵌套類看作非嵌套類來處理。這樣,上述的嵌套類可寫成如下格式:

              class A
              {
              public:
                void f();
              private:
                int a;
              };

                class B
              {
                public:
                …
              private:
                …
              };

              由引可見,嵌套類僅僅是語法上的嵌入。

              5、在嵌套類中說明的友元對外圍類的成員沒有訪問權(quán)。

              6、如果嵌套類比較復(fù)雜,可以只在外圍類中對嵌套類進行說明,關(guān)于嵌套的詳細的內(nèi)容可在外圍類體外的文件域中進行定義。


            參考:C++編程思想和網(wǎng)絡(luò)文章。

            posted on 2007-05-24 17:20 夢在天涯 閱讀(10674) 評論(1)  編輯 收藏 引用 所屬分類: CPlusPlus

            評論

            # re: C++局部類和嵌套類的區(qū)別 2007-06-10 19:07 黃大仙

            收藏  回復(fù)  更多評論   

            公告

            EMail:itech001#126.com

            導(dǎo)航

            統(tǒng)計

            常用鏈接

            隨筆分類

            隨筆檔案

            收藏夾

            Blogs

            c#(csharp)

            C++(cpp)

            Enlish

            Forums(bbs)

            My self

            Often go

            Useful Webs

            Xml/Uml/html

            搜索

            積分與排名

            最新評論

            閱讀排行榜

            亚洲精品美女久久777777| 无遮挡粉嫩小泬久久久久久久| www.久久热| 久久国产乱子伦精品免费午夜| 久久最新免费视频| 久久精品国产亚洲AV高清热| 久久精品嫩草影院| 亚洲AⅤ优女AV综合久久久| 欧洲精品久久久av无码电影 | 国产精品99久久99久久久| 大美女久久久久久j久久| 久久这里只有精品首页| 亚洲欧美精品伊人久久| 一本久久知道综合久久| 观看 国产综合久久久久鬼色 欧美 亚洲 一区二区 | 久久天天躁狠狠躁夜夜躁2O2O | 热99RE久久精品这里都是精品免费 | 久久精品国产男包| 办公室久久精品| 色88久久久久高潮综合影院 | 久久九九久精品国产| 欧美黑人激情性久久| 伊人色综合久久天天人守人婷| 久久99热国产这有精品| 无码人妻少妇久久中文字幕蜜桃| 久久午夜福利电影| 91精品国产色综久久| 麻豆精品久久精品色综合| 久久天天躁狠狠躁夜夜avapp| 久久综合鬼色88久久精品综合自在自线噜噜 | 精品一二三区久久aaa片| 色欲综合久久躁天天躁| 久久亚洲国产成人影院网站| 国产农村妇女毛片精品久久| 久久青青草原国产精品免费| 精品久久久久久亚洲精品 | 亚洲美日韩Av中文字幕无码久久久妻妇 | 狠狠色丁香婷婷久久综合五月| 久久99精品国产99久久6| 久久国产成人| 伊人热热久久原色播放www|