• <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>
            隨筆 - 6  文章 - 8  trackbacks - 0
            <2007年3月>
            25262728123
            45678910
            11121314151617
            18192021222324
            25262728293031
            1234567

            常用鏈接

            留言簿(1)

            隨筆檔案

            搜索

            •  

            最新評論

            閱讀排行榜

            評論排行榜

            C++中,經(jīng)常用到對象(Object)、類(Class)和實例(Instance)等概念,一直對這幾個概念有些混淆,今天算是整理一下自己的思路,談?wù)勛约簩@幾個概念的看法吧;希望不當(dāng)之處大家能夠指出,也歡迎大家看看自己的看法。

            從其定義來看,對象是指一個能完成特定操作,具有特定屬性的實體(Component);類是具有相同屬性對象的集合(Group of Objects)。實例則往往被理解為一個對象的具體化。

            對象更多的是一個概念,在象SmallTalk這類純粹的OO語言中,所有東西都是對象(MetaClass, Class, Instances);而類在不過是一個特殊的、能作為模板創(chuàng)建實例的對象。(一直想弄個SmallTalk來玩玩,但終究沒有時間和精力去學(xué)習(xí)。)

            C++中,“對象”概念往往被模糊化,它不是一個能包括一切的概念,而在某些環(huán)境下成為能和類與實例相互替換的概念。

            原因之一,或許是在C++對類的定義。C++把類定義為一個抽象數(shù)據(jù)類型(ADT)。而ADT只是一個實現(xiàn)上的概念,它在運行時并不存在一個對象所應(yīng)該具有的特征(屬性和行為)。雖然C++中引入了運行時類型信息(RTTI,參看type_info類),但仍然很難把類當(dāng)成一個對象。從這個角度來說,在實現(xiàn)時類可以看作是對象概念的代名詞。

            原因之二,個人覺得應(yīng)該是和使用這些概念的上下文有關(guān)。在使用C++時(包括設(shè)計模式),往往需要考慮兩個層次的抽象:
            1. 編碼(實現(xiàn))時的抽象
            2. 運行時的抽象

            在實現(xiàn)時,C++中,無疑類的概念和對象的概念是一致的,而實例則可以理解為一個類的實例化或一個對象的具體化;對應(yīng)與Design Pattern,那些結(jié)構(gòu)化的模式(Structural Patterns)更適合與這一層次的抽象。

            在運行時,個人覺得對象更多的是和實例等同的。我們說某個對象和另外一個對象交互更多的是在表達某個類的一個實例和另一個類的一個實例進行交互,這個時候,對象不再是一個概念,而是被具體化了。而設(shè)計模式中的行為模式(Behavioral Patterns)則更適合與這個層次的抽象。

            以上是我對這幾個基本概念的理解,請大家批評指教!
            //bow

            posted on 2007-03-22 10:34 Neal 閱讀(6101) 評論(5)  編輯 收藏 引用

            FeedBack:
            # re: 我看C++中的Object, Class & Instance 2007-03-22 14:44 Corner Zhang
            對象(Object)-- 平時口頭上經(jīng)常提到“基于對象的編程”,“面向?qū)ο蟮木幊獭?,凡是要隱藏部分信息的那個概念,就是通常意義上的對象。

            類(Class)-- 在C++中,這是指一些類型,它們有別于float, int, long...,從compiler的角度看,它是一族對象的母板,并且存在編譯期

            實例(Instance)-- 是個運行時的概念,擁有自身狀態(tài),具有生存期/擁有權(quán)性質(zhì)的,寄身于memory的二進制表示。就因為這個原因,成為hacker整日追蹤的目標(biāo)。  回復(fù)  更多評論
              
            # re: 我看C++中的Object, Class & Instance 2007-03-23 08:31 LOGOLS OFF
            感覺你說的有點太school了
            類就是類型,對象就是實例,實例就是對象。這就是我的理解了  回復(fù)  更多評論
              
            # re: 我看C++中的Object, Class & Instance 2007-03-23 16:45 Neal
            呵呵,謝謝大家
            就是談?wù)勛约旱母惺芎屠斫饴?。。??隙ㄓ胁粚Φ牡胤?,只是希望大家能和偶一起探討探討~ 要不天天coding有什么意思呢

            C++和其它OO語言肯定有相同的地方,但更重要的是它不同的地方三,要不怎么會有這么多fans;D
              回復(fù)  更多評論
              
            # re: 我看C++中的Object, Class & Instance 2007-03-28 20:05 Corner Zhang
            @LOGOLS OFF
            赫赫,當(dāng)初我寫下這回復(fù),就覺得少不了具務(wù)實精神的回復(fù)!  回復(fù)  更多評論
              
            # re: 我看C++中的Object, Class & Instance 2007-03-30 17:08 塌塌方
            類就是一組數(shù)據(jù)及其能對它進行的操作的集合  回復(fù)  更多評論
              
            久久99国产综合精品| 性高湖久久久久久久久AAAAA| 亚洲午夜无码AV毛片久久| 亚洲伊人久久综合中文成人网| 欧美粉嫩小泬久久久久久久| 亚洲午夜久久久久妓女影院 | 噜噜噜色噜噜噜久久| 久久亚洲日韩看片无码| 精品久久久久久亚洲| 久久人人爽人人爽人人爽 | 1000部精品久久久久久久久| 精品无码久久久久久国产| 久久九九兔免费精品6| 狠狠色伊人久久精品综合网| 精产国品久久一二三产区区别| 久久国产精品久久| 亚洲第一极品精品无码久久| 久久久久亚洲AV综合波多野结衣| 色8久久人人97超碰香蕉987| 久久人人超碰精品CAOPOREN| 久久精品国产半推半就| 久久人人爽人人爽人人片AV高清 | 久久久一本精品99久久精品88| 三级韩国一区久久二区综合| 97久久超碰国产精品2021| 综合网日日天干夜夜久久| 热久久国产欧美一区二区精品| 亚洲国产成人久久精品影视| 人人狠狠综合久久88成人| 亚洲美日韩Av中文字幕无码久久久妻妇 | 97久久精品人妻人人搡人人玩| 精品久久久久久综合日本| 色婷婷综合久久久久中文一区二区 | 国产亚洲精午夜久久久久久| 久久国语露脸国产精品电影| 亚洲七七久久精品中文国产| 久久精品无码一区二区三区日韩| 国产视频久久| 一级a性色生活片久久无少妇一级婬片免费放 | 一本一道久久综合狠狠老| 国产亚州精品女人久久久久久 |