国产18禁黄网站免费观看,99爱在线精品免费观看,粉嫩metart人体欣赏,99久久99精品久久久久久,6080亚洲人久久精品

計算機等級考試二級C++各章內(nèi)容摘要6

時間:2008-10-06 05:34:00   來源:無憂考網(wǎng)     [字體: ]
第6章 類和對象
【考點一】 類的定義
1.類的定義類的定義可以分為兩部分:說明部分和實現(xiàn)部分。說明部分說明類中包含的數(shù)據(jù)成員和成員函數(shù),實現(xiàn)部分是對成員函數(shù)的定義。類定義的一般格式如下://類的說明部分class<類名>{public:<成員函數(shù)或數(shù)據(jù)成員的說明>//公有成員,外部接口protected:<數(shù)據(jù)成員或成員函數(shù)的說明>//保護成員private:<數(shù)據(jù)成員或成員函數(shù)的說明>//私有成員};//類的實現(xiàn)部分<各個成員函數(shù)的實現(xiàn)>
其中,class是聲明類的關(guān)鍵字;<類名>是要聲明的類的名字,必須符合標識符定義規(guī)則;花括號表示類的聲明范圍,說明該類的成員,其后的分號表示類聲明結(jié)束。類的成員包括數(shù)據(jù)成員和成員函數(shù),分別描述類所表達的問題的屬性和行為。關(guān)鍵字public、private和protected稱為訪問權(quán)限修飾符,它們限制了類成員的訪問控制范圍。各個成員函數(shù)的實現(xiàn)即可以在類體內(nèi)定義,也可以在類體外定義。如果一個成員函數(shù)在類體內(nèi)進行了定義,它將不出現(xiàn)在類的實現(xiàn)部分;如果所有的成員函數(shù)都在類體內(nèi)進行了定義,則可以省略類的實現(xiàn)部分。在類體內(nèi)定義的成員函數(shù)都是內(nèi)聯(lián)函數(shù)。
2.類成員的訪問控制類中提供了3種訪問控制權(quán)限:公有(public)、私有(private)和保護(protected)。其中,公有類型定義了類的外部接口,任何一個外部的訪問都必須通過外部接口進行;私有類型的成員只允許本類的成員函數(shù)訪問,來自類外部的任何訪問都是非法的;保護類型介于公有類型和私有類型之間,在繼承和派生時可以體現(xiàn)出其特點。
3.類的數(shù)據(jù)成員類中的數(shù)據(jù)成員描述類所表達的問題的屬性。數(shù)據(jù)成員在類體中進行定義,其定義方式與一般變量相同,但對數(shù)據(jù)成員的訪問要受到訪問權(quán)限修飾符的控制。在定義類的數(shù)據(jù)成員時,要注意以下幾個問題。(1)類中的數(shù)據(jù)成員可以是任意類型,包括整型、浮點型、字符型、數(shù)組、指針和引用等,也可以是對象。但是要注意,只有另外一個類的對象,才可以作為該類的成員,即作為該類的成員對象而存在。自身類的對象是不可以作為自身類的成員存在的,但自身類的指針可以。(2)在類體中不允許對所定義的數(shù)據(jù)成員進行初始化。
4.類的成員函數(shù)類的成員函數(shù)描述類所表達的問題的行為。類中所有的成員函數(shù)都必須在類體內(nèi)進行說明。但成員函數(shù)的定義既可以在類體內(nèi)給出,也可以在類體外給出。第一種方式是將成員函數(shù)直接定義在類的內(nèi)部。第二種方式是在類聲明中給出對成員函數(shù)的說明,而在類外部對成員函數(shù)進行定義(但成員函數(shù)仍然在類范圍內(nèi))。這種在類外部定義的成員函數(shù)的一般格式是:<返回類型><類名>::<成員函數(shù)名>(<參數(shù)表>){<函數(shù)體>}在類體外定義成員函數(shù)時,要注意必須在成員函數(shù)名前加上類名和作用域運算符(::)。作用域運算符用來標識某個成員屬于某個類。作用域運算符的使用格式如下:<類名>::<成員函數(shù)名>(<參數(shù)表>)或<類名>::<數(shù)據(jù)成員名>成員函數(shù)的兩種定義方式之間是有差別的。如果一個成員函數(shù)的聲明和定義都在類體內(nèi),那么這個成員函數(shù)就是內(nèi)聯(lián)函數(shù)。如果一個成員函數(shù)的聲明在類體內(nèi),而定義在類體外,這時對該成員函數(shù)的調(diào)用是按一般函數(shù)進行的。如果要將定義在類體外的成員函數(shù)也作為內(nèi)聯(lián)函數(shù)處理,就必須在成員函數(shù)的定義前加上關(guān)鍵字"inline",以此顯式地說明該成員函數(shù)也是一個內(nèi)聯(lián)函數(shù)。成員函數(shù)除了可以定義為內(nèi)聯(lián)函數(shù)以外,也可以進行重載,可以對其參數(shù)設(shè)置默認值。 【考點二】 對象的定義
1.對象的定義對象是類的實例,一個對象必須屬于一個已知的類。因此在定義對象之前,必須先定義該對象所屬的類。對象的定義格式如下:<類名><對象名>(<參數(shù)表>);其中,<類名>是待定義的對象所屬的類的名字。<對象名>中可以有一個或多個對象名,多個對象名之間用逗號分隔。<對象名>中,可以是一般的對象名,也可以是指向?qū)ο蟮闹羔樏蛞妹,還可以是對象數(shù)組名。<參數(shù)表>是初始化對象時需要的,建立對象時可以根據(jù)給定的參數(shù)調(diào)用相應(yīng)的構(gòu)造函數(shù)對對象進行初始化。無參數(shù)時表示調(diào)用類的缺省構(gòu)造函數(shù)。
2.對象的成員一個對象的成員就是該對象的類所定義的成員,包括數(shù)據(jù)成員和成員函數(shù)。定義了對象后,可以使用" ."運算符和"->"運算符訪問對象的成員。其中," ."運算符適用于一般對象和引用對象,而"->"運算符適用于指針對象(即指向?qū)ο蟮闹羔?。訪問對象成員的一般格式如下:<對象名> .<數(shù)據(jù)成員名>或<對象名>-><數(shù)據(jù)成員名><對象名> .<成員函數(shù)名>(<參數(shù)表>)或<對象名>-><成員函數(shù)名>(<參數(shù)表>) 【考點三】 構(gòu)造函數(shù)和析構(gòu)函數(shù)
1.構(gòu)造函數(shù)和析構(gòu)函數(shù)的定義。構(gòu)造函數(shù)的作用是在對象被創(chuàng)建時利用特定的值構(gòu)造對象,將對象初始化為一種特定的狀態(tài),使該對象具有區(qū)別于其他對象的特征。構(gòu)造函數(shù)在對象被創(chuàng)建的時候由系統(tǒng)自動調(diào)用。構(gòu)造函數(shù)也是類的成員函數(shù),但它是一種特殊的成員函數(shù),它除了具有一般成員函數(shù)的特性之外,還具有一些特殊的性質(zhì):(1)構(gòu)造函數(shù)的名字必須與類名相同;(2)構(gòu)造函數(shù)不指定返回類型,它隱含有返回值,由系統(tǒng)內(nèi)部使用;(3)構(gòu)造函數(shù)可以有一個或多個參數(shù),因此構(gòu)造函數(shù)可以重載;(4)在創(chuàng)建對象時,系統(tǒng)會自動調(diào)用構(gòu)造函數(shù)。
2.缺省構(gòu)造函數(shù)和缺省析構(gòu)函數(shù)缺省構(gòu)造函數(shù)就是調(diào)用時不必提供參數(shù)的構(gòu)造函數(shù)。缺省的構(gòu)造函數(shù)的函數(shù)名與類名相同,它的參數(shù)表或者為空,或者它的所有參數(shù)都具有默認值。前面日期類Date的定義中,構(gòu)造函數(shù)Date(int y=2000);就是缺省構(gòu)造函數(shù)。如果類中定義了一個缺省構(gòu)造函數(shù),則使用該函數(shù);如果一個類中沒有定義任何構(gòu)造函數(shù),編譯器將生成一個不帶參數(shù)的公有缺省構(gòu)造函數(shù),它的定義格式如下:<類名>::<類名>(){}每個類都必須有一個析構(gòu)函數(shù)。如果一個類沒有聲明析構(gòu)函數(shù),編譯器將生成一個公有的析構(gòu)函數(shù),即缺省析構(gòu)函數(shù),它的定義格式如下:<類名>::~<類名>(){}
3.拷貝構(gòu)造函數(shù)類中有一種特殊的構(gòu)造函數(shù)叫做拷貝構(gòu)造函數(shù),它用一個已知的對象初始化一個正在創(chuàng)建的同類對象?截悩(gòu)造函數(shù)的一般格式如下:<類名>::<類名>(const<類名>&<引用對象名>){//拷貝構(gòu)造函數(shù)體}拷貝構(gòu)造函數(shù)具有以下特點:(1)也是一種構(gòu)造函數(shù),因此函數(shù)名與類名相同,并且不能指定函數(shù)返順類型。(2)只有一個參數(shù),是對同類的某個對象的引用。(3)每一個類中都必須有一個拷貝構(gòu)造函數(shù)。如果類中沒有聲明拷貝構(gòu)造函數(shù),編譯器會自動生成一個具有上述形式的公有的拷貝構(gòu)造函數(shù)。