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

            f(sixleaves) = sixleaves

            重劍無鋒 大巧不工

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

            1.創建對象:

                 在java中創建對象只能用new才行,返回的是引用類型,所以對象名其實是引用。而C++中的對象創建不一樣,C++可以用指針存對象,相當于引用。也可以直接用類標識符來創建對象。如Person是類,Person a,b;在C++中就創建了兩個對象,在java中是Person對象的引用。

            2.C++中了this指針:

                 C++中的this指針和java中的一樣。在C++中,this指針指向當前對象,this指針隱含在每個成員函數之中,其類型是class className *.

                 內部機制:

                 在C++中訪問數據成員都是隱含的使用this指針操作的。需要注意的是。

                 1.this指針是const類型,不可改變。

                 2.this指針針對對象,所以靜態成員是沒有this指針的。

            3.構造函數和析構函數

                 構造函數就不說了,只說下默認構造函數就死className() {},默認會生成。但是如果你自己定義了構造函數,而且不是定義成默認構造函數,就要在定義一下默認構造函數,不然創建對象時候必須指定參數,不能用無參數的。

                 析構函數,就是用來在對象要銷毀時候,回收一些對象自己向系統申請的內存。析構函數調用完后,系統才清除對象本身占據的內存。

                  Tips:

                   1.析構函數不能重載,只有一種形式~className() {},這是和構造函數的區別

                   2.三種情況下調用析構函數,對象離開局部作用域后,撤銷對象觸發,程序終止,觸發;delete運算符回收new創建的對象觸發;臨時匿名函數使用完畢;

            4.拷貝構造函數和單參構造函數

                    (1)拷貝構造函數,其實就是構造函數中的單參數形式的構造函數,只是其參數比較特別,是對自身同類對象的引用。拷貝構造函數在一下幾個的方會用到。

                     Date a;Date b(a);//調用的就是拷貝構造函數

                     Date b = a;//調用的也是拷貝構造函數

                     function(Date d){….};function(a);//調用的也是拷貝構造函數(先創建Date類的匿名對象,然后調用拷貝構造函數)

                     Date c = function(a);//這邊function返回Date對象,也是調用拷貝構造函數(沒有創建匿名對象)

                     (2)單參構造函數

                      單參數構造函數。其實拷貝構造函數也是單參構造函數。但是我將他們區別開來,主要是單參構造函數,主要是用在,隱式的類型轉換上。

                      如你定義了一個Integer類,直接Integer a = 1;是會出錯的。因為1不能自動或者隱含的轉換成Integer對象,所以這時候你就要定義

                      單參數構造函數,用來讓自動轉換,在java中稱為包裝。由于是構造函數,參數中的類型就是那個要轉換的類型。其它和基本構造函數一樣。

            5.靜態成員

                    靜態成員又分為靜態數據成員和靜態函數成員。C++中的靜態函數成員和java也沒區別。主要是靜態數據成員。所以我們總結下靜態數據成員

                  (1)靜態數據成員和類共存亡而不是和對象。

                  (2)靜態數據成員在類加載時候分配空間并進行初始化,而不是在對象加載時候。所以靜態數據成員默認初始化為0。

                         重點是:類中的靜態數據成員知識一份聲明,必須在類外重新定義并初始化靜態數據成員。

                  (3)類外通過類作用域運算符::訪問靜態數據成員。

            6.const用法

                    (1)const成員函數,這時候const加載函數名后面 {}之前。表示函數不會改變當前對象的狀態,而且只能調用const成員函數。(養成習慣,能加盡量加)

                           Tips:這里const也是函數簽名的一部分。

                    (2)const對象,表示常量對象。

                    (3)const形參,表示函數中不會改變該形參。注意:常量對象,只能調用const成員函數,因為這才能保證狀態不被改變,同時這樣保證了他就是常量對象。

                            Tips:這里const也是函數簽名的一部分。

                     (4)const返回值,說明返回值是不可以改變的。

            以上這些都是總結,不是寫給沒基礎的人看的。只是為了方便整理和記憶。

            posted on 2014-09-04 17:18 swp 閱讀(312) 評論(0)  編輯 收藏 引用 所屬分類: program language
            久久国产精品成人影院| 久久精品?ⅴ无码中文字幕| 一本一道久久综合狠狠老| 久久久亚洲AV波多野结衣 | 国产精品午夜久久| 久久久久亚洲AV成人网人人软件| 一本色综合久久| 久久久久久九九99精品| 久久综合五月丁香久久激情| 国产精品乱码久久久久久软件 | 久久久久国产一区二区三区| 无码人妻久久一区二区三区蜜桃| 欧美牲交A欧牲交aⅴ久久 | 亚洲精品无码久久久| 久久99精品久久久久久hb无码| 国产精品99久久精品爆乳| 亚洲国产欧洲综合997久久| 久久93精品国产91久久综合| 伊人久久大香线蕉av不卡 | 九九热久久免费视频| 国产精品99久久久精品无码| 久久久久九九精品影院| 美女写真久久影院| 亚洲AV无码久久精品蜜桃| 无码8090精品久久一区| 国产精品99久久久久久宅男| 久久成人国产精品| 亚洲国产精品无码久久久不卡| 人妻精品久久久久中文字幕| 色偷偷888欧美精品久久久| 久久久国产精品亚洲一区| 伊人久久大香线蕉精品不卡| 国产福利电影一区二区三区久久老子无码午夜伦不 | …久久精品99久久香蕉国产| 亚洲欧美日韩久久精品第一区| 亚洲v国产v天堂a无码久久| 国产成人精品久久亚洲高清不卡| 久久综合中文字幕| 国产巨作麻豆欧美亚洲综合久久 | 亚洲午夜精品久久久久久app| 人妻丰满?V无码久久不卡|