點擊加載圖片 個人主頁:[??個人主頁] 系列專欄:[系列專欄:零基礎(chǔ)學(xué)習(xí)C++] @[toc] 前言 類是對現(xiàn)實生活中一類具有共同特征的事物的抽象 >類的內(nèi)部封裝了屬性和方法,用于操作自身的成員。類是對某種對象的定義,具有行為(behavior),它描述一個對象能夠做什么以及做的方法(method),它們是可以對這個對象進(jìn)行操作的程序和過程。它包含有關(guān)對象行為方式的信息,包括它的名稱、屬性、方法和事件。 什么是類??? 類(Class)是面向?qū)ο蟪绦蛟O(shè)計(OOP,Object-OrientedProgramming)實現(xiàn)信息封裝的基礎(chǔ)。類是一種用戶定義的引用數(shù)據(jù)類型,也稱類類型。每個類包含數(shù)據(jù)說明和一組操作數(shù)據(jù)或傳遞消息的函數(shù)。類的實例稱為對象。 類的實質(zhì)是一種引用數(shù)據(jù)類型,類似于byte、short、int(char)、long、float、double等基本數(shù)據(jù)類型,不同的是它是一種復(fù)雜的數(shù)據(jù)類型。因為它的本質(zhì)是數(shù)據(jù)類型,而不是數(shù)據(jù),所以不存在于內(nèi)存中,不能被直接操作,只有被實例化為對象時,才會變得可操作。 類的構(gòu)成包括==成員屬性和成員方法(數(shù)據(jù)成員和成員函數(shù))==。數(shù)據(jù)成員對應(yīng)類的屬性,類的數(shù)據(jù)成員也是一種數(shù)據(jù)類型,并不需要分配內(nèi)存。成員函數(shù)則用于操作類的各項屬性,是一個類具有的特有的操作 類的三大特性?? 封裝性將數(shù)據(jù)和操作封裝為一個有機(jī)的整體,由于類中私有成員都是隱藏的,只向外部提供有限的接口,所以能夠保證內(nèi)部的高內(nèi)聚性和與外部的低耦合性。用者不必了解具體的實現(xiàn)細(xì)節(jié),而只是要通過外部接口,以特定的訪問權(quán)限來使用類的成員,能夠增強(qiáng)安全性和簡化編程。 繼承性更符合認(rèn)知規(guī)律,使程序更易于理解,同時節(jié)省不必要的重復(fù)代碼。 多態(tài)性是指同一操作作用于不同對象,可以有不同的解釋,產(chǎn)生不同的執(zhí)行結(jié)果。在運(yùn)行時,可以通過指向父類(基類)的指針,來調(diào)用實現(xiàn)子類(派生類)中的方法。 點擊加載圖片 定義一個類?? class類名{public:公有成員 private:私有成員 protected:保護(hù)成員}; 公有成員、私有成員、保護(hù)成員均包含數(shù)據(jù)成員和成員函數(shù)兩部分,彼此沒有順序之分。一個public/private/protected關(guān)鍵字下可以跟多個成員,直到下一個public/private/protected關(guān)鍵字。如果成員前面沒有public/private/protected關(guān)鍵字,默認(rèn)為私有成員。 結(jié)尾部分的分號必不可少,否則會發(fā)生語法錯誤。 無論公有成員、私有成員還是保護(hù)成員,彼此之間都可以訪問。比如公有的成員函數(shù)可以操作保護(hù)的數(shù)據(jù)成員,也可以調(diào)用私有的成員函數(shù)。 類的數(shù)據(jù)成員是類型,所以不能被賦值,聲明數(shù)據(jù)成員和聲明普通變量的格式相同,比如“intn;” 成員函數(shù)的實現(xiàn) 成員函數(shù)可以在類內(nèi)實現(xiàn),也可以在類外實現(xiàn)。內(nèi)部實現(xiàn)的成員函數(shù)被默認(rèn)為加上了inline;外部實現(xiàn)的成員函數(shù)必須加上域操作符,即“類名::成員函數(shù)”。 類的實例化?? 聲明一個類類型的對象,就是類的實例化,會涉及到必要的內(nèi)存分配。 類名對象名(參數(shù)列表); 如果沒有參數(shù),括號必須省略,即“類名對象名;”,自動調(diào)用構(gòu)造函數(shù)。特殊地,參數(shù)可以是類的對象,此時會自動調(diào)用拷貝構(gòu)造函數(shù)。 點擊加載圖片 |
|