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

正文內(nèi)容

第3章:vc程序設計核心——類與對象(編輯修改稿)

2025-08-28 15:27 本頁面
 

【文章內(nèi)容簡介】 { cout The date is m_yearm_monthm_dayendl 。 } private: int m_year 。 int m_month 。 int m_day 。 }。 2022/8/18 52 void main() { TDate Today。 //建立一個日期對象 (2022,8,1)。 //調(diào)用設置日期的函數(shù) ()。//調(diào)用顯示日期的函數(shù) } 程序運行結果為: The date is 202281 2022/8/18 53 對象的初始化 —— 構造函數(shù) ?構造函數(shù)是系統(tǒng)在創(chuàng)建對象時進行初始化的工具 ?構造函數(shù)是類的一種特殊的成員函數(shù) ?其特殊性在于: ( 1) 功能特殊: 構造函數(shù)是為新創(chuàng)建的對象分配內(nèi)存空間或為數(shù)據(jù)成員賦初值,一般在創(chuàng)建對象時,為對象做初始化的工作。 ( 2) 形式特殊: 構造函數(shù)的名稱和類的名字相同,并且該函數(shù)無函數(shù)類型的說明; ( 3) 調(diào)用時機特殊: 構造函數(shù)不像普通成員函數(shù)那樣需要顯式調(diào)用(對象 .成員函數(shù)的形式或對象指針 成員函數(shù)),它是隱式調(diào)用,即在一個新對象建立時(包含兩種情況:一種是在對象的聲明語句中,另一種是用 new函數(shù)建立新的動態(tài)對象時),該對象所隸屬類的構造函數(shù)自動被調(diào)用。 2022/8/18 54 注: ?當類中不給出類的構造函數(shù)時, 系統(tǒng)將自動給出默認的構造函數(shù) ,這個構造函數(shù)沒有參數(shù),而且函數(shù)體為空 ?構造函數(shù)不允許有返回值 ,也不許定義函數(shù)的返回值類型 ?構造函數(shù)可以重載 , 即可以定義多個參數(shù)個數(shù)不同或類型不同的構造函數(shù) 。 2022/8/18 55 對象的撤消 —— 析構函數(shù) ?析構函數(shù)是在撤消對象時進行收尾工作的工具 。 ?它的 功能 是:在對象被撤消時,對該對象所占的空間進行釋放。 ?當類中沒有給出析構函數(shù)時 , 系統(tǒng)將自動生成一個缺省的構造函數(shù) 。 ?當撤消對象時 (對象的生存期結束或通過 delete函數(shù)釋放動態(tài)對象), 系統(tǒng)會自動調(diào)用析構函數(shù) 。 ?析構函數(shù)不允許定義函數(shù)的返回值類型, 定義析構函數(shù)時不能指定任何形式的參數(shù),而且析構函數(shù)也不能重載,即析構函數(shù)在一個類中只能有一個。 2022/8/18 56 【例 316】一個包含構造函數(shù)和析構函數(shù)的例子。程序的主文件為 。 include include class Exl { private: int x。 public: Exl() {coutEx1 類的對象建立 , 其構造函數(shù)被調(diào)用\n。 } ~Exl() {coutEx1類的對象撤消 , 其析構函數(shù)被調(diào)用\n。 } void setdata(int i) {x=i*2。} //在類中定義成員函數(shù) setdata() void print()。 }。//類 Exl定義結束 2022/8/18 57 class Ex2 { int y。 public: Ex2() {coutEx2 類的對象建立 , 其構造函數(shù)被調(diào)用\n。 } ~Ex2() {coutEx2類的對象撤消 , 其析構函數(shù)被調(diào)用\n。 } void setdata(int j) {y=j*j。} void print()。 }。//類 Ex2定義結束 void Ex2::print() { coutclass Ex2: setw(6)y \n。 }//成員函數(shù) print()定義結束 2022/8/18 58 void main( ) { Exl s。 Ex2 t。 (5)。 ( )。 (5)。 ( )。 } 程序運行結果為: Ex1 類的對象建立 , 其構造函數(shù)被調(diào)用 Ex2 類的對象建立 , 其構造函數(shù)被調(diào)用 class Exl: 10 class Ex2: 25 Ex2類的對象撤消 , 其析構函數(shù)被調(diào)用 Ex1類的對象撤消 , 其析構函數(shù)被調(diào)用 2022/8/18 59 * 對象的深入理解 1.對象就是變量 2.對象是封裝了屬性和行為的基本單位 3. 對象是一個有限狀態(tài)自動機 2022/8/18 60 類的繼承與派生 類與類之間的四種關系 繼承的概念 派生類的聲明 基類成員的訪問控制 派生與繼承的應用 2022/8/18 61 類與類之間的四種關系 是封裝了事物屬性和方法的同類對象的集合。 類 UML(unified model language, 統(tǒng)一建模語言 )認為 , 類之間主要存在四種關系 。 1. 關聯(lián) (Association)關系 關聯(lián)關系表示兩個類之間存在某種語義上的聯(lián)系, 即與該關聯(lián)連接的類的對象之間具有一定的語義連接關系,該關系表達了類之間的一種相關性。 2022/8/18 62 2.依賴( Dependency) 關系 依賴關系描述的是兩個類之間的語義上的連接關系,它是一種 “ UseA”關系。假設有兩個元素 A與 B,如果修改元素 A的定義可能會引起對另一個元素 B的定義的修改,則稱元素 B依賴于 A。 3.聚合( Aggregation) 關系 聚合關系是一種 “ HasA”關系,它體現(xiàn)的是類之間的一種整體與部分的關系。例如汽車包括四個輪子和一個發(fā)動機等。 2022/8/18 63 4.泛化 (Generalization )關系 泛化關系是一種 “ IsA”關系 , 它描述的是類之間的 “ 一般 ” 與 “ 特殊 ” 的關系 。 具有共同特性的元素可以抽象為一般類 , 并通過增加其內(nèi)涵 , 進一步抽象成特殊類 。 該關系可以將類組成一種有層次 、 有分類的結構 。 例如:狗是一種哺乳動物 , 哺乳動物是一種動物等 。 在 VC中建立類之間的泛化關系采用的是繼承機制 。 2022/8/18 64 繼承的概念 繼承是描述類與類之間關系的一個概念 , 它提高了代碼的重用性 , 使得程序更加模塊化 , 便于程序更簡單而又準確地描述事物 。 繼承關系可以用由派生類指向基類的箭頭表示 , 如圖 : 交通工具 飛機 汽車 火車 轎車 卡車 面包車 2022/8/18 65 派生類的聲明 單繼承中派生類的聲明格式為: class 派生類類名:訪問控制限定符 基類名 。 其中訪問控制限定符號可以是 public( 公有派生 ) 、protected ( 保護派生 ) 和 private( 私有派生 ) 。 【 例 317】 一個派生類的聲明實例 。 如果交通工具用前面講的類 TVehicle來抽象表示 , 汽車用類 TCar來抽象表示的話 , 那么汽車從交通工具繼承而來 ( 或交通工具派生汽車的 ) 的語義表示成 C++語言的語法描述為: 2022/8/18 66 class TCar: public TVehicle { public: void Initialize(int wheels,float weight,int passenger=4)。 GetPassenger(void)。 private: int m_passenger。 }。 2022/8/18 67 基類成員的訪問控制 派生類 對基類成員的訪問不僅取決于基類成員聲明的訪問控屬性,還取決于派生類對基類的 “ 繼承程度 ” 。繼承程度有有三種: 公有( public)、 受保護( protected)和 私有( private) 類型的繼承。 我們可以根據(jù)下表中的繼承成員訪問控制規(guī)則來決定使用哪種訪問方式更合理 ,不同的訪問控制 , 決定了基類可以被派生類所訪問的 “ 開放 ” 程度 。 2022/8/18 68 表 繼承成員訪問控制規(guī)則 繼承訪問控制 基類成員訪問控制 在派生類中的訪問控制 public public public protected protected private 不可訪問 protected public protected protected protected private 不可訪問 private public private protected private private 不可訪問 2022/8/18 69 【 例 319】一個使用類的繼承 實例。主文件為 。 派生與繼承的應用 include class TVehicle //交通工具類的聲明 { public : void Initialize(int wheels,float weight)。 int GetWheels(void) {return m_wheels。} float GetWeight(void){return m_weight。} private: int m_wheels。 //輪子 float m_weight。 //載重 }。 2022/8/18 70 void TVehicle::Initialize(int wheels,float weight) { m_wheels=wheels。 m_weight=weight。 } class TCar: public TVehicle//汽車類從交通工具類公有派生 { public: void Initialize(int wheels,float weight,int passenger)。 int GetPassenger(void) {return m_passenger。} private: int m_passenger。 //乘客數(shù) }。 void TCar::Initialize(int wheels,float weight,int passenger=4) { TVehicle::Initialize(wheels,weight)。 //調(diào)用父類的函數(shù)進行初始化 } 2022/8/18 71 void main() { TVehicle VehicleInstance。 //聲明一個交通工具對象 VehicleInstance TCar CarInstance。 //聲明一個汽車對象 CarInstance (4,6)。 //初始化交通工具 cout交通工具輪子的個數(shù)是: ()endl。 cout交通工具輪子的載重為: ()endl。 (1,2)。 //初始化汽車 //調(diào)用從基類繼承而來的函數(shù) GetWheels等 cout汽車的輪子 、 載重和乘客數(shù)為: m_passenger=passenger。 ()\t()\t。 cout()endl。 //調(diào)用派生類新增的函數(shù)GetPassenger } 2022/8/18 72 程序運行結果為: 交通工具輪子的個數(shù)是: 4 交通工具輪子的載重為: 6 汽車的輪子 、 載重和乘客數(shù)為: 1 2 4 2022/8/18 73 類的多態(tài)性 多態(tài)性概述 多態(tài)性的類型 編譯時多態(tài)性的兩種方式 運行時多態(tài)性的實現(xiàn)條件 純虛函數(shù)與抽象類 * 使用虛函數(shù)的好處 習題 2022/8/18 74 多態(tài)性概述 在 VC中 , 這種同一符號或名字在不同情況下表現(xiàn)為不同的語義現(xiàn)象稱為 多態(tài)性 。 嚴格地講 , 在 VC中 , 不同的類可以有語義相同的函數(shù) , 這些函數(shù)在概念上是相似的 , 但對應各自的類來說 , 其實現(xiàn)是不同的 , 因而對象在接收到同樣的函數(shù)調(diào)用時所引發(fā)的行為有可能是不同的 , 這一功能稱為多態(tài)性 。 直觀地講就是 “
點擊復制文檔內(nèi)容
環(huán)評公示相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1