freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

c++語(yǔ)言程序設(shè)計(jì)教程(下)ppt-文庫(kù)吧

2024-11-22 21:40 本頁(yè)面


【正文】 3. 類作用域 類是一組數(shù)據(jù)成員和函數(shù)成員的集合,類作用域作用于類中定義的特定的成員,包括數(shù)據(jù)成員與成員函數(shù),類內(nèi)的每一個(gè)成員都具有 類作用域 。實(shí)際上,類的封裝作用 也就是限制類的成員其訪問(wèn)范圍局限于類的作用域之內(nèi) 。 C++語(yǔ)言程序設(shè)計(jì)教程 第7章 類與對(duì)象 類的定義 class Clock { private: int H,M,S。 public: Clock AddTime(Clock C2){ // 形參為 Clock類型的變量 Clock T。 // 函數(shù)體中定義了 Clock類型的變量 ... return T。 // 返回類型為 Clock類型 } }。 C++語(yǔ)言程序設(shè)計(jì)教程 第7章 類與對(duì)象 ?注意 : 在成員函數(shù)中不僅可以自由使用類的成員,還可以使用該類定義變量 (對(duì)象 ),通過(guò)變量使用成員。其原因是函數(shù)在調(diào)用時(shí)才在棧內(nèi)存中建立函數(shù)體中的變量 (包括實(shí)參 ),這時(shí)類已經(jīng)定義完畢,當(dāng)然可以使用已定義完整的類類型的變量。 對(duì)象的建立與使用 類相當(dāng)于一種包含函數(shù)的自定義數(shù)據(jù)類型,它不占內(nèi)存,是一個(gè)抽象的“虛”體,使用已定義的類建立對(duì)象就像用數(shù)據(jù)類型定義變量一樣。對(duì)象建立后,對(duì)象占據(jù)內(nèi)存,變成了一個(gè)“實(shí)”體。類與對(duì)象的關(guān)系就像數(shù)據(jù)類型與變量的關(guān)系一樣。其實(shí),一個(gè)變量就是一個(gè)簡(jiǎn)單的不含成員函數(shù)的數(shù)據(jù)對(duì)象。 類名 對(duì)象名; 建立對(duì)象的格式如下: 其中,對(duì)象名可以是簡(jiǎn)單的標(biāo)識(shí)符,也可以是數(shù)組。 在例 71中,使用: Clock MyClock。 建立了一個(gè) Clock型的對(duì)象 MyClock。 C++語(yǔ)言程序設(shè)計(jì)教程 第7章 類與對(duì)象 類名 對(duì)象名; 對(duì)象的建立與使用 在建立對(duì)象后,就可以通過(guò)對(duì)象存取對(duì)象中的數(shù)據(jù)成員,調(diào)用成員函數(shù)。存取語(yǔ)法如下: 例如,通過(guò)對(duì)象 MyClock使用成員函數(shù) SetTime()的方式如下: (8,30,30)。 至于對(duì)數(shù)據(jù)成員 H、 M、 S的存取,因其存取權(quán)限為 pravate而被保護(hù) , 所以不能進(jìn)行直接存取。 C++語(yǔ)言程序設(shè)計(jì)教程 第7章 類與對(duì)象 對(duì)象名 .屬性 對(duì)象名 .成員函數(shù)名 (實(shí)參 1, 實(shí)參 2,… ,) ?注意 : 為節(jié)省內(nèi)存,編譯器在創(chuàng)建對(duì)象時(shí),只為各對(duì)象分配用于保存各對(duì)象數(shù)據(jù)成員初始化的值,并不為各對(duì)象的成員函數(shù)分配單獨(dú)的內(nèi)存空間,而是共享類的成員函數(shù)定義,即類中成員函數(shù)的定義為該類的所有對(duì)象所共享,這是 C++編譯器創(chuàng)建對(duì)象的一種方法,在實(shí)際應(yīng)用中,我們?nèi)砸獙?duì)象理解為由數(shù)據(jù)成員和函數(shù)成員兩部分組成。 成員的存取控制 通過(guò)設(shè)置成員的存取控制屬性 , 使對(duì)類成員的存取得到控制,從而達(dá)到了 信息隱藏 的目的。 C++的存取控制屬性有:公有類型 (public)、私有類型 (private)和保護(hù)類型 (protected)。三者的意義如下: 表 71 存取控制屬性表 C++語(yǔ)言程序設(shè)計(jì)教程 第7章 類與對(duì)象 存取屬性 意 義 可存取對(duì)象 public 公開 (公有 )級(jí) 該類成員以及所有對(duì)象 protected 保護(hù)級(jí) 該類及其子類成員 private 私有級(jí) 該類的成員 類中定義為 public等級(jí)的成員,可以被該類的任何對(duì)象存取,適用于完全公開的數(shù)據(jù)。而 private等級(jí)的成員只可被類內(nèi)的成員存取,適用于不公開的數(shù)據(jù)。至于 protected等級(jí),屬于半公開性質(zhì)的數(shù)據(jù),定義為 protected等級(jí)的成員,可以被該類及其子類存取。關(guān)于子類的概念,在以后的章節(jié)中講述。 成員的存取控制 在 Clock類中, H、 M、 S的存取控制屬性為 privated。這樣,這些數(shù)據(jù)不能在類外存取而被保護(hù),下列存取方法是 錯(cuò)誤 的: =30。 而成員函數(shù) SetTime()、 ShowTime()存取控制屬性為 public, 因此在類外可以通過(guò)對(duì)象存取。 由于 private成員被 隱藏 起來(lái),不能 直接 在類外被存取,為了取得這些被隱藏的數(shù)據(jù),通常在類內(nèi)定義一個(gè) public的成員函數(shù),通過(guò)該成員函數(shù)存取 private成員,而 public的成員函數(shù)又能在類外被調(diào)用。這樣 通過(guò)調(diào)用 public型的成員函數(shù) , 間接 存取到 private成員。這樣的函數(shù)起到了為 private成員提供供外界訪問(wèn)的接口作用。 類 Clock中成員函數(shù) SetTime()、 ShowTime()就是存取 private數(shù)據(jù)成員 H、 M、 S的接口。 通過(guò) 接口 訪問(wèn)類的數(shù)據(jù)成員,一方面有效保護(hù)數(shù)據(jù)成員,另一方面又保證了數(shù)據(jù)的合理性。 C++語(yǔ)言程序設(shè)計(jì)教程 第7章 類與對(duì)象 構(gòu)造函數(shù)與析構(gòu)函數(shù) 在定義一個(gè)對(duì)象的同時(shí),希望能給它的數(shù)據(jù)成員賦初值 ―― 對(duì)象的初始化。在特定對(duì)象使用結(jié)束時(shí),還經(jīng)常需要進(jìn)行一些清理工作。 C++程序中的 初始化 和 清理工作 分別由兩個(gè)特殊的成員函數(shù)來(lái)完成,它們就是構(gòu)造函數(shù)和析構(gòu)函數(shù)。 C++語(yǔ)言程序設(shè)計(jì)教程 第7章 類與對(duì)象 構(gòu)造函數(shù) 構(gòu)造函數(shù) (constructor) 構(gòu)造函數(shù) 是與類名相同的,在建立對(duì)象時(shí)自動(dòng)調(diào)用的函數(shù)。如果在定義類時(shí),沒(méi)有為類定義構(gòu)造函數(shù),編譯系統(tǒng)就生成一個(gè) 默認(rèn)形式 的 隱含的 的構(gòu)造函數(shù),這個(gè)構(gòu)造函數(shù)的函數(shù)體是空的,因此默認(rèn)構(gòu)造函數(shù)不具備任何功能。 如果用戶至少為類定義了一個(gè)構(gòu)造函數(shù), C++就不會(huì)生成任何默認(rèn)的構(gòu)造函數(shù),而是根據(jù)對(duì)象的參數(shù)類型和個(gè)數(shù)從用戶定義的構(gòu) 造函數(shù)中選擇最合適的構(gòu)造函數(shù)完成對(duì)該對(duì)象的初始化。 作為類的成員函數(shù), 構(gòu)造函數(shù) 可以直接訪問(wèn)類的所有數(shù)據(jù)成員,可以是內(nèi)聯(lián)函數(shù),可以不帶任何參數(shù),可以帶有參數(shù)表以及默認(rèn)形參值,還 可以重載 ,用戶可以根據(jù)不同問(wèn)題的具體需要, 有針對(duì)性地設(shè)計(jì)合適的構(gòu)造函數(shù)將對(duì)象初始化為 特定的狀態(tài) 。 C++語(yǔ)言程序設(shè)計(jì)教程 第7章 類與對(duì)象 構(gòu)造函數(shù) 例如,將例 71 程序 Clock類中添加帶有默認(rèn)形參值的構(gòu)造函數(shù): Clock(int h=0,int m=0,int s=0) { H=(h=0amp。amp。h24)?h:0。 M=(m=0amp。amp。m60)?m:0。 S=(s=0amp。amp。s60)?s:0。 } 執(zhí)行: Clock MyClock。 ()。 顯示結(jié)果為: 0:0:0 這是因?yàn)榻?duì)象時(shí)調(diào)用了 Clock(),各個(gè)形參被設(shè)成了默認(rèn)值。 當(dāng)執(zhí)行: Clock MyClock(9,30,45)。 ()。 顯示結(jié)果為: 9:30:45 這是因?yàn)榻?duì)象時(shí)調(diào)用了 Clock(9,30,45) C++語(yǔ)言程序設(shè)計(jì)教程 第7章 類與對(duì)象 構(gòu)造函數(shù) 構(gòu)造函數(shù)是類的一個(gè)成員函數(shù),除了具有一般成員函數(shù)的特征之外,還歸納出如下特殊的性質(zhì): ? 構(gòu)造函數(shù)的函數(shù)名必須與定義它的類同名。 ? 構(gòu)造函數(shù) 沒(méi)有返回值 。如果在構(gòu)造函數(shù)前加 void是錯(cuò)誤的。 ? 構(gòu)造函數(shù)被聲明定義為公有函數(shù)。 ? 構(gòu)造函數(shù)在建立對(duì)象時(shí) 由系統(tǒng)自動(dòng)調(diào)用 。 注意 :由于構(gòu)造函數(shù)可以 重載 ,可以定義多個(gè)構(gòu)造函數(shù),在建立對(duì)象時(shí)根據(jù)參數(shù)來(lái)調(diào)用相應(yīng)的構(gòu)造函數(shù)。如果相應(yīng)的構(gòu)造函數(shù) 沒(méi)有定義 ,則出錯(cuò)。例如,若定義例 71中的構(gòu)造函數(shù),而 不是 帶默認(rèn)形參值的構(gòu)造函數(shù): Clock(int h, int m,int s) { H=(h=0amp。amp。h24)?h:0。 M=(m=0amp。amp。m60)?m:0。 S=(s=0amp。amp。s60)?s:0。 } 定義對(duì)象 Clock MyClock。時(shí),調(diào)用 Clock(), 而 Clock類沒(méi)有 Clock()函數(shù),因而出錯(cuò)。 C++語(yǔ)言程序設(shè)計(jì)教程 第7章 類與對(duì)象 析構(gòu)函數(shù) 自然界萬(wàn)物都是有生有滅,程序中的對(duì)象也是一樣。對(duì)象在定義時(shí)誕生,不同生存期的對(duì)象在不同的時(shí)期消失。在 對(duì)象要消失 時(shí),通常有一些善后工作需要做 , 例如:構(gòu)造對(duì)象時(shí),通過(guò)構(gòu)造函數(shù)動(dòng)態(tài)申請(qǐng)了一些內(nèi)存單元,在對(duì)象消失之前就要 釋放這些內(nèi)存單元 。 C++用什么來(lái)保證這些善后清除工作的執(zhí)行呢?答案是: 析構(gòu)函數(shù) 。 析構(gòu)函數(shù) (destructor)也譯作拆構(gòu)函數(shù) , 是在對(duì)象消失之前的瞬間自動(dòng)調(diào)用的函數(shù) , 其形式是 : ? 構(gòu)造函數(shù)名 (類名 )前加上一個(gè)邏輯非運(yùn)算符 ~,以示與構(gòu)造函數(shù)相反。 ? 析構(gòu)函數(shù)與構(gòu)造函數(shù)的作用幾乎正好相反,相當(dāng)于“ 逆構(gòu)造函數(shù) ”。析構(gòu)函數(shù)也是類的一個(gè) 特殊的公有函數(shù)成員 , C++語(yǔ)言程序設(shè)計(jì)教程 第7章 類與對(duì)象 ~構(gòu)造函數(shù)名 ()。 析構(gòu)函數(shù) 析構(gòu)函數(shù)具有以下特點(diǎn): ? 析構(gòu)函數(shù)沒(méi)有任何參數(shù), 不能被重載 , 但可以是虛函數(shù) ,一個(gè)類只有一個(gè)析構(gòu)函數(shù)。 ? 析構(gòu)函數(shù) 沒(méi)有返回值 。 ? 析構(gòu)函數(shù)名與類名相同,但在類名前加上一個(gè)邏輯非運(yùn)算符“ ~”,以示與構(gòu)造函數(shù)對(duì)比區(qū)別。 ? 析構(gòu)函數(shù)一般由用戶自己定義, 在對(duì)象消失時(shí)由系統(tǒng)自動(dòng)調(diào)用 ,如果用戶沒(méi)有定義析構(gòu)函數(shù),系統(tǒng)將自動(dòng)生成一個(gè)不做任何事的默認(rèn)析構(gòu)函數(shù) 。 C++語(yǔ)言程序設(shè)計(jì)教程 第7章 類與對(duì)象 ?注意 : 在對(duì)象消失時(shí)的清理工作并不是由析構(gòu)函數(shù)完成,而是靠用戶 在析構(gòu)函數(shù)中添加清理語(yǔ)句完成 。 析構(gòu)函數(shù) i=5 i=4 i=3 i=2 { } } 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 /***************************** * * * 構(gòu)造函數(shù)與析構(gòu)函數(shù) * *****************************/ include iostream using namespace std。 class Clock { private: int H,M,S。 public: Clock(int h=0,int m=0,int s=0) { H=h,M=m,S=s。 coutconstructor:H:M:Sendl。 } C++語(yǔ)言程序設(shè)計(jì)教程 第7章 類與對(duì)象 析構(gòu)函數(shù) 16 17 18
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1