[工學(xué)]VC類與對象課件_第1頁
[工學(xué)]VC類與對象課件_第2頁
[工學(xué)]VC類與對象課件_第3頁
[工學(xué)]VC類與對象課件_第4頁
[工學(xué)]VC類與對象課件_第5頁
已閱讀5頁,還剩60頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、 第4章 類與對象7/23/20221面向?qū)ο蟪绦蛟O(shè)計(jì)與Visual C+6.0教程 本章主要內(nèi)容:類的定義與使用 類的數(shù)據(jù)成員和成員函數(shù)類成員的訪問控制方法類的實(shí)現(xiàn)和對象的創(chuàng)建訪問類成員的方法構(gòu)造函數(shù)與析構(gòu)函數(shù)復(fù)制構(gòu)造函數(shù)及深復(fù)制與淺復(fù)制類作用域靜態(tài)成員類的友元常對象7/23/20222面向?qū)ο蟪绦蛟O(shè)計(jì)與Visual C+6.0教程4.1 類 類是對具有相同屬性(數(shù)據(jù))和行為(操作)的一組對象的抽象。面向?qū)ο蟪绦蛟O(shè)計(jì)的核心任務(wù)是類的確定和對象的創(chuàng)建,而不是將各個(gè)具體的對象逐一進(jìn)行描述。忽略各具體對象的非本質(zhì)特征,抽象出本質(zhì)特征與共性,然后形成類的概念,對象是類的實(shí)例。 從語法分析,類也是一種

2、數(shù)據(jù)類型,即用戶自定義的數(shù)據(jù)類型,而一個(gè)一個(gè)具體的對象可以視為屬于這一數(shù)據(jù)類型的一個(gè)變量。7/23/20223面向?qū)ο蟪绦蛟O(shè)計(jì)與Visual C+6.0教程1. 類的定義 類是對具有相同屬性和行為的一組對象的抽象與統(tǒng)一描述; 類的定義包括行為和屬性兩個(gè)部分; 屬性以數(shù)據(jù)表示,行為通過函數(shù)實(shí)現(xiàn)。7/23/20224面向?qū)ο蟪绦蛟O(shè)計(jì)與Visual C+6.0教程C+類定義的格式: class 類名 public: 公有數(shù)據(jù)成員和成員函數(shù); protected: 保護(hù)數(shù)據(jù)成員和成員函數(shù); private: 私有數(shù)據(jù)成員和成員函數(shù); 各成員函數(shù)的實(shí)現(xiàn);7/23/20225面向?qū)ο蟪绦蛟O(shè)計(jì)與Visual

3、 C+6.0教程 class Student /定義學(xué)生類Studentpublic: /聲明類成員 void Getinfo(char* pname,char* pid,char Sex, int a,double s); void modify(float s); void display();private: char* name; char* id; char sex; int age; double score; /類定義以分號結(jié)束 類定義舉例7/23/20226面向?qū)ο蟪绦蛟O(shè)計(jì)與Visual C+6.0教程類定義和使用時(shí)應(yīng)注意: 類的定義中不能對數(shù)據(jù)成員進(jìn)行初始化。 公有部分是類對

4、外的接口,一般應(yīng)先說明公有部分 類的任何成員都必須指定訪問屬性,一般將數(shù)據(jù)成員定義為私有成員或保護(hù)成員,將成員函數(shù)定義為公有成員。 類中的數(shù)據(jù)成員可以是C+語法規(guī)定的任意數(shù)據(jù)類型,但不能用存儲類型auto、register或extern進(jìn)行修飾。7/23/20227面向?qū)ο蟪绦蛟O(shè)計(jì)與Visual C+6.0教程注意事項(xiàng)(續(xù)) 類的成員可以是其他類的對象,但不能以類自身的對象作為本類的成員,而類自身的指針和引用可以作為類的成員。 類定義必須以分號“;”結(jié)束。 在C語言中,結(jié)構(gòu)體只有數(shù)據(jù)成員,而C+的結(jié)構(gòu)體不僅有數(shù)據(jù)成員,而且有成員函數(shù)及訪問權(quán)限控制。 類與結(jié)構(gòu)體的區(qū)別: 沒有明確指定類成員的訪問

5、權(quán)限時(shí),C+結(jié)構(gòu)體的成員是公有的,而類的成員是私有的。7/23/20228面向?qū)ο蟪绦蛟O(shè)計(jì)與Visual C+6.0教程2 訪問控制 類的訪問屬性有: Public Protected Private 各種訪問方式的功能如下表7/23/20229面向?qū)ο蟪绦蛟O(shè)計(jì)與Visual C+6.0教程 類成員訪問控制表 訪問控制含義屬 性public公有成員類的外部接口protected保護(hù)成員僅允許本類成員函數(shù)及派生類成員函數(shù)訪問private私有成員僅允許本類成員函數(shù)訪問7/23/202210面向?qū)ο蟪绦蛟O(shè)計(jì)與Visual C+6.0教程 類的成員函數(shù)是實(shí)現(xiàn)對封裝的數(shù)據(jù)進(jìn)行操作的惟一途徑,是現(xiàn)實(shí)類的

6、行為屬性的成員。 一般將成員函數(shù)聲明為函數(shù)原型,在類外具體實(shí)現(xiàn)成員函數(shù)。 如果成員函數(shù)已經(jīng)在類中定義,則無須在類外實(shí)現(xiàn)。 類中定義的成員函數(shù)自動(dòng)成為內(nèi)聯(lián)函數(shù)。 4.2 成員函數(shù) 7/23/202211面向?qū)ο蟪绦蛟O(shè)計(jì)與Visual C+6.0教程1. 成員函數(shù)的定義 返回值類型 類名:成員函數(shù)名(參數(shù)表) 函數(shù)體 7/23/202212面向?qū)ο蟪绦蛟O(shè)計(jì)與Visual C+6.0教程2. 內(nèi)聯(lián)成員函數(shù) 在類中實(shí)現(xiàn)的成員函數(shù)自動(dòng)成為內(nèi)聯(lián)函數(shù);內(nèi)聯(lián)成員函數(shù)可以減少函數(shù)調(diào)用開銷,提高程序的執(zhí)行效率;內(nèi)聯(lián)成員函數(shù)增加了程序代碼的長度;一般將調(diào)用頻繁且代碼少的成員函數(shù)定義為內(nèi)聯(lián)成員函數(shù);若內(nèi)聯(lián)成員函數(shù)在類

7、外實(shí)現(xiàn),需要以inline限定。 7/23/202213面向?qū)ο蟪绦蛟O(shè)計(jì)與Visual C+6.0教程4.3 對象 類描述了一類問題的共同屬性和行為,對象是類的實(shí)例或?qū)嶓w。類與對象的關(guān)系,如同C+基本數(shù)據(jù)類型和該類型的變量之間的關(guān)系。 7/23/202214面向?qū)ο蟪绦蛟O(shè)計(jì)與Visual C+6.0教程1. 對象的定義 對象的定義格式如下: 類名 對象名1,對象名2,對象名n;7/23/202215面向?qū)ο蟪绦蛟O(shè)計(jì)與Visual C+6.0教程 必須在定義了類之后,才可以定義類的對象; 類定義僅提供該類的類型定義。 僅僅定義了類,系統(tǒng)并不會分配存儲空間,只有定義了對象后,編譯系統(tǒng)才會在內(nèi)存中預(yù)

8、留空間。 定義對象應(yīng)注意7/23/202216面向?qū)ο蟪绦蛟O(shè)計(jì)與Visual C+6.0教程 聲明了類及其對象以后,就可以訪問對象的公有成員(包括數(shù)據(jù)成員和成員函數(shù))。 對象成員的訪問包括: 圓點(diǎn)訪問形式 指針訪問形式2. 類成員的訪問 7/23/202217面向?qū)ο蟪绦蛟O(shè)計(jì)與Visual C+6.0教程(1) 圓點(diǎn)訪問形式 對象名.公有成員7/23/202218面向?qū)ο蟪绦蛟O(shè)計(jì)與Visual C+6.0教程(2) 指針訪問形式 形式一: 對象指針變量名-公有成員形式二: (*對象指針變量名).公有成員 7/23/202219面向?qū)ο蟪绦蛟O(shè)計(jì)與Visual C+6.0教程N(yùn)ew 運(yùn)算符介紹本章

9、例4-7程序中出現(xiàn)了New運(yùn)算符;New運(yùn)算符用于動(dòng)態(tài)內(nèi)存分配,在后續(xù)章節(jié)中有專門介紹;New 運(yùn)算符使用形式:指針?biāo)赶虻臄?shù)據(jù)類型應(yīng)與new 運(yùn)算符后的數(shù)據(jù)類型相同,若申請成功則返回分配單元的首地址給指針變量,否則返回空指針值(即0)給指針變量。例如: (1) 指針變量=new 數(shù)據(jù)類型; (2) 指針變量=new 數(shù)據(jù)類型(初始值); (3) 指針變量=new 數(shù)據(jù)類型元素個(gè)數(shù);7/23/202220面向?qū)ο蟪绦蛟O(shè)計(jì)與Visual C+6.0教程N(yùn)ew 運(yùn)算符舉例 int *p1; double *p2; p1=new int(12); p2=new double 100;分別表示動(dòng)態(tài)分配

10、了用于存放整型數(shù)據(jù)的內(nèi)存空間,將初值12寫入該內(nèi)存空間,并將首地址值返回指針p1;動(dòng)態(tài)分配了具有100個(gè)雙精度實(shí)型數(shù)組元素的數(shù)組,同時(shí)將各存儲區(qū)的首地址指針返回給指針變量p2; 7/23/202221面向?qū)ο蟪绦蛟O(shè)計(jì)與Visual C+6.0教程對象是類的實(shí)例,在創(chuàng)建了對象以后,編譯系統(tǒng)將給對象分配存儲空間。不同對象的區(qū)別主要表現(xiàn)在兩個(gè)方面: 對象名:即對象的標(biāo)識符(外在區(qū)別); 對象屬性:即數(shù)據(jù)成員的值,(內(nèi)在區(qū)別)對象在定義的時(shí)需要初始化。對象生命期結(jié)束時(shí)要進(jìn)行清理工作。 C+中對象的創(chuàng)建與初始化、對象生命期結(jié)束時(shí)的清理工作,分別由構(gòu)造函數(shù)和析構(gòu)函數(shù)完成。 4.4 構(gòu)造函數(shù)與析構(gòu)函數(shù) 7/

11、23/202222面向?qū)ο蟪绦蛟O(shè)計(jì)與Visual C+6.0教程 構(gòu)造函數(shù)的功能是在定義對象時(shí)由編譯系統(tǒng)自動(dòng)調(diào)用來創(chuàng)建對象并初始化對象。 構(gòu)造函數(shù)的函數(shù)名與類名相同。其定義格式如下: 1. 構(gòu)造函數(shù) 類名:類名(參數(shù)表) 函數(shù)語句7/23/202223面向?qū)ο蟪绦蛟O(shè)計(jì)與Visual C+6.0教程 構(gòu)造函數(shù)的函數(shù)名與類名相同; 構(gòu)造函數(shù)可以有任意類型的參數(shù),但沒有函數(shù)返回值類型; 構(gòu)造函數(shù)一般被定義為公有成員; 構(gòu)造函數(shù)在創(chuàng)建對象時(shí)由編譯系統(tǒng)自動(dòng)調(diào)用; 構(gòu)造函數(shù)只能一次性地影響對象的數(shù)據(jù)成員初值。 構(gòu)造函數(shù)的特殊性質(zhì): 7/23/202224面向?qū)ο蟪绦蛟O(shè)計(jì)與Visual C+6.0教程 如果

12、類中沒有定義構(gòu)造函數(shù),系統(tǒng)將自動(dòng)生成一個(gè)默認(rèn)形式的構(gòu)造函數(shù),用于創(chuàng)建對象,默認(rèn)構(gòu)造函數(shù)形式: 默認(rèn)構(gòu)造函數(shù)類名:類名() 7/23/202225面向?qū)ο蟪绦蛟O(shè)計(jì)與Visual C+6.0教程使用構(gòu)造函數(shù)時(shí)應(yīng)注意: 構(gòu)造函數(shù)是特殊的成員函數(shù),函數(shù)體可寫在類中,也可寫在類外; 若構(gòu)造函數(shù)沒有參數(shù),則稱為無參構(gòu)造函數(shù);若構(gòu)造函數(shù)帶有參數(shù),則稱為帶參數(shù)構(gòu)造函數(shù); 構(gòu)造函數(shù)可以重載; 每個(gè)類都必須有一個(gè)構(gòu)造函數(shù)。如果程序沒有顯式定義構(gòu)造函數(shù),編譯系統(tǒng)將自動(dòng)生成一個(gè)默認(rèn)形式的構(gòu)造函數(shù)。 7/23/202226面向?qū)ο蟪绦蛟O(shè)計(jì)與Visual C+6.0教程2. 析構(gòu)函數(shù) 析構(gòu)函數(shù)不能有參數(shù),也不能重載。定義

13、格式如下: 類名:類名() 函數(shù)語句7/23/202227面向?qū)ο蟪绦蛟O(shè)計(jì)與Visual C+6.0教程析構(gòu)函數(shù)的自動(dòng)調(diào)用 除對象生存期結(jié)束時(shí)自動(dòng)調(diào)用外,在以下兩種情況下析構(gòu)函數(shù)會被調(diào)用: 如果一個(gè)對象被定義在一個(gè)函數(shù)體內(nèi),則當(dāng)這個(gè)函數(shù)結(jié)束時(shí)。 若一個(gè)對象是使用new運(yùn)算符被動(dòng)態(tài)創(chuàng)建的,在使用delete運(yùn)算符釋放它時(shí)。 7/23/202228面向?qū)ο蟪绦蛟O(shè)計(jì)與Visual C+6.0教程默認(rèn)析構(gòu)函數(shù) 若沒有顯式定義析構(gòu)函數(shù),則系統(tǒng)自動(dòng)生成一個(gè)默認(rèn)形式的析構(gòu)函數(shù)。系統(tǒng)自動(dòng)生成的默認(rèn)構(gòu)造函數(shù)形式如下: 類名:類名()7/23/202229面向?qū)ο蟪绦蛟O(shè)計(jì)與Visual C+6.0教程3. 復(fù)制構(gòu)

14、造函數(shù) 復(fù)制構(gòu)造函數(shù)也是一種特殊的成員函數(shù);功能是用一個(gè)已知的對象初始化一個(gè)被創(chuàng)建 的同類新對象; 復(fù)制構(gòu)造函數(shù)的參數(shù)是本類對象的引用; C+為每一個(gè)類定義了一個(gè)默認(rèn)的復(fù)制構(gòu)造函數(shù);可以根據(jù)需要定義自己的復(fù)制構(gòu)造函數(shù),從而實(shí) 現(xiàn)同類對象之間數(shù)據(jù)成員的值傳遞。 7/23/202230面向?qū)ο蟪绦蛟O(shè)計(jì)與Visual C+6.0教程復(fù)制構(gòu)造函數(shù)的定義格式class 類名public: 類名(參數(shù)表); /構(gòu)造函數(shù) 類名(const 類名 &對象名); /復(fù)制構(gòu)造函數(shù) ;類名:類名(const 類名 &對象名) 函數(shù)語句7/23/202231面向?qū)ο蟪绦蛟O(shè)計(jì)與Visual C+6.0教程復(fù)制構(gòu)造函數(shù)的

15、調(diào)用 以下三種情況下由編譯系統(tǒng)自動(dòng)調(diào)用:聲明語句中用類的一個(gè)已知對象初始化該類的另一個(gè)對象時(shí);當(dāng)對象作為一個(gè)函數(shù)實(shí)參傳遞給函數(shù)的形參時(shí),需要將實(shí)參對象去初始化形參對象時(shí),需要調(diào)用復(fù)制構(gòu)造函數(shù); 當(dāng)對象是函數(shù)的返回值時(shí),由于需要生成一個(gè)臨時(shí)對象作為函數(shù)返回結(jié)果,系統(tǒng)需要將臨時(shí)對象的值初始化另一個(gè)對象,需要調(diào)用復(fù)制構(gòu)造函數(shù)。7/23/202232面向?qū)ο蟪绦蛟O(shè)計(jì)與Visual C+6.0教程復(fù)制構(gòu)造函數(shù)的特點(diǎn): 復(fù)制構(gòu)造函數(shù)名與類名相同,并且沒有返回值類型; 復(fù)制構(gòu)造函數(shù)可寫在類中,也可以寫在類外; 復(fù)制構(gòu)造函數(shù)有且僅有一個(gè)參數(shù),即是同類對象的引用; 如果沒有顯式定義復(fù)制構(gòu)造函數(shù),系統(tǒng)自動(dòng)生成一個(gè)

16、默認(rèn)形式的復(fù)制構(gòu)造函數(shù)。 7/23/202233面向?qū)ο蟪绦蛟O(shè)計(jì)與Visual C+6.0教程默認(rèn)復(fù)制構(gòu)造的形式 類名:類名(const 類名 &對象名);7/23/202234面向?qū)ο蟪绦蛟O(shè)計(jì)與Visual C+6.0教程4. 淺復(fù)制與深復(fù)制 關(guān)于淺復(fù)制:在用一個(gè)對象初始化另一個(gè)對象時(shí),只復(fù)制了數(shù)據(jù)成員,而沒有復(fù)制資源,使兩個(gè)對象同時(shí)指向了同一資源的復(fù)制方式稱為淺復(fù)制;默認(rèn)復(fù)制構(gòu)造函數(shù)所進(jìn)行的是簡單數(shù)據(jù)復(fù)制,即淺復(fù)制。 關(guān)于深復(fù)制:通過一個(gè)對象初始化另一個(gè)對象時(shí),不僅復(fù)制了數(shù)據(jù)成員,也復(fù)制了資源的復(fù)制方式稱為深復(fù)制; 自定義復(fù)制構(gòu)造函數(shù)所進(jìn)行的復(fù)制是深復(fù)制。 7/23/202235面向?qū)ο蟪?/p>

17、序設(shè)計(jì)與Visual C+6.0教程4.5 靜態(tài)成員 靜態(tài)成員提供了同一個(gè)類不同對象數(shù)據(jù)成員的共享機(jī)制。靜態(tài)成員包括: 靜態(tài)數(shù)據(jù)成員 靜態(tài)成員函數(shù) 7/23/202236面向?qū)ο蟪绦蛟O(shè)計(jì)與Visual C+6.0教程static 靜態(tài)成員的定義; 例如: static int total; static void display(); 1. 靜態(tài)成員的定義與引用 7/23/202237面向?qū)ο蟪绦蛟O(shè)計(jì)與Visual C+6.0教程類名:靜態(tài)成員名;靜態(tài)成員的引用 7/23/202238面向?qū)ο蟪绦蛟O(shè)計(jì)與Visual C+6.0教程2. 靜態(tài)數(shù)據(jù)成員 類型 類名:靜態(tài)數(shù)據(jù)成員=初始化值;對于類的

18、普通數(shù)據(jù)成員,每一個(gè)對象都各自擁有一個(gè)副本;對于靜態(tài)數(shù)據(jù)成員,每個(gè)類只擁有一個(gè)副本;靜態(tài)數(shù)據(jù)成員初始化與一般數(shù)據(jù)成員初始化有所不同,其初始化格式如下: 7/23/202239面向?qū)ο蟪绦蛟O(shè)計(jì)與Visual C+6.0教程3. 靜態(tài)成員函數(shù) 靜態(tài)成員函數(shù)是指使用static關(guān)鍵字聲明的成員函數(shù);與靜態(tài)數(shù)據(jù)成員一樣,靜態(tài)成員函數(shù)不是某一個(gè)類的成員,而是屬于整個(gè)類;靜態(tài)成員函數(shù)可以直接訪問該類的靜態(tài)數(shù)據(jù)成員,而訪問非靜態(tài)數(shù)據(jù)成員則可以通過對象進(jìn)行調(diào)用。 7/23/202240面向?qū)ο蟪绦蛟O(shè)計(jì)與Visual C+6.0教程應(yīng)用靜態(tài)成員函數(shù)的優(yōu)點(diǎn) 靜態(tài)成員函數(shù)只能直接訪問該類中的靜態(tài)數(shù)據(jù)成員,而不會影響

19、該類的其他數(shù)據(jù)成員;采用靜態(tài)成員函數(shù),可以在創(chuàng)建對象之前處理靜態(tài)數(shù)據(jù)成員,這是普通成員函數(shù)不能實(shí)現(xiàn)的;靜態(tài)成員函數(shù)在同一個(gè)類只有一個(gè)成員函數(shù)的地址映射,節(jié)約了計(jì)算機(jī)系統(tǒng)的開銷;靜態(tài)成員函數(shù)不能直接訪問類中的非靜態(tài)成員。如果靜態(tài)成員函數(shù)需要訪問非靜態(tài)成員,需要通過對象名才能訪問該對象的非靜態(tài)數(shù)據(jù)成員。 7/23/202241面向?qū)ο蟪绦蛟O(shè)計(jì)與Visual C+6.0教程4.6 友元 若需要在類的外部直接訪問類的私有數(shù)據(jù)成員,在C+中,通過定義友元可以實(shí)現(xiàn)這一功能。友元包括: 友元函數(shù) 友元類 7/23/202242面向?qū)ο蟪绦蛟O(shè)計(jì)與Visual C+6.0教程1. 友元的作用 C+的友元提供了不

20、同類或?qū)ο蟮某蓡T函數(shù)之間、類的成員函數(shù)與普通函數(shù)之間進(jìn)行數(shù)據(jù)共享的機(jī)制。7/23/202243面向?qū)ο蟪绦蛟O(shè)計(jì)與Visual C+6.0教程非對稱性(單向的) 若B是A的友元,若沒有特別聲明,則A不是B的友元。非傳遞性 若B是A的友元,C是B的友元,若沒有特別聲明,則C不是A的友元。 友元的性質(zhì)7/23/202244面向?qū)ο蟪绦蛟O(shè)計(jì)與Visual C+6.0教程2.友元函數(shù) 如果類外的非本類成員函數(shù)需要訪問類的私有數(shù)據(jù)成員或保護(hù)成員,則需要將該函數(shù)聲明為類的友元函數(shù)。 友元函數(shù)的聲明格式如下: friend 返回值類型 函數(shù)名(參數(shù)表);7/23/202245面向?qū)ο蟪绦蛟O(shè)計(jì)與Visual C

21、+6.0教程友元函數(shù)可以訪問類中的私有數(shù)據(jù)成員,但友元函數(shù)不是類的成員函數(shù);友元函數(shù)可以是一個(gè)普通函數(shù),也可以是另外一個(gè)類的成員函數(shù);友元函數(shù)不是類的成員,因而與成員函數(shù)存在區(qū)別,友元函數(shù)不能直接使用對象名,而必須通過對象操作數(shù)據(jù)成員 。使用友元函數(shù)時(shí)需注意 7/23/202246面向?qū)ο蟪绦蛟O(shè)計(jì)與Visual C+6.0教程3. 友元類 不僅函數(shù)可以聲明為一個(gè)類的友元。一個(gè)類也可以聲明為另一個(gè)類的友元。若一個(gè)類被聲明為另一個(gè)類的友元,則該類的所有成員函數(shù)都是另一個(gè)類的友元。 7/23/202247面向?qū)ο蟪绦蛟O(shè)計(jì)與Visual C+6.0教程friend 類名; 友元類的聲明格式:7/23/

22、202248面向?qū)ο蟪绦蛟O(shè)計(jì)與Visual C+6.0教程4.7 類作用域及對象的生存期 C+標(biāo)識符的作用域有函數(shù)原型作用域、塊作用域(局部作用域)、函數(shù)作用域、類作用域和文件作用域。 除類作用域外,其他作用域已在第3章介紹,7/23/202249面向?qū)ο蟪绦蛟O(shè)計(jì)與Visual C+6.0教程1. 類作用域 類作用域:是指在類中定義的數(shù)據(jù)成員、成員函數(shù)及其他標(biāo)識符的作用范圍僅限定在該類中,即類作用域是指在類的聲明中用一對花括號括起來的部分。 7/23/202250面向?qū)ο蟪绦蛟O(shè)計(jì)與Visual C+6.0教程2. 對象的生存期 生存期是一個(gè)時(shí)間概念; 類對象的生存期是指對象從被創(chuàng)建開始到生存期

23、結(jié)束為止的時(shí)間; 類對象在聲明時(shí)被創(chuàng)建,在釋放時(shí)被終止。7/23/202251面向?qū)ο蟪绦蛟O(shè)計(jì)與Visual C+6.0教程局部對象。局部對象是被定義在一個(gè)程序快或函數(shù)體內(nèi)的對象,它的作用域范圍小、生存期短。靜態(tài)對象。靜態(tài)對象被定義在一個(gè)文件中,它的作用域從定義時(shí)開始到文件結(jié)束時(shí)止,它的作用域范圍大,生存期也較長。全局對象。全局對象的作用在域整個(gè)程序中,它的作用域范圍最大、生存期也最長。 類對象的生存期包括:7/23/202252面向?qū)ο蟪绦蛟O(shè)計(jì)與Visual C+6.0教程 一般情況下,如果C+程序中出現(xiàn)兩個(gè)變量、函數(shù)名或類名的名字完全相同,就會產(chǎn)生沖突。 解決命名沖突的辦法有兩個(gè): 第一種

24、解決方法是重新使用不同的標(biāo)識符名,但有時(shí)為了程序的可讀性,必須使用相同的標(biāo)識名。 C+提供了第二種解決命名沖突的方法名空間。 4.8 名空間7/23/202253面向?qū)ο蟪绦蛟O(shè)計(jì)與Visual C+6.0教程枚舉類型變量的聲明格式如下:1. 名空間的定義 namespace 名空間標(biāo)識符名 成員的聲明;7/23/202254面向?qū)ο蟪绦蛟O(shè)計(jì)與Visual C+6.0教程使用名空間的成員時(shí)要用名空間名進(jìn)行標(biāo)識,從而有效解決了標(biāo)識符沖突。名空間成員的訪問方式如下: 2. 名空間成員的訪問 名空間標(biāo)識符名:成員名7/23/202255面向?qū)ο蟪绦蛟O(shè)計(jì)與Visual C+6.0教程為解決數(shù)據(jù)共享與數(shù)據(jù)安全的統(tǒng)一,C+引入了常類型。常類型是指使用關(guān)鍵字const說明的類型,常類型的變量或?qū)ο蟪蓡T的值在程序運(yùn)行期間是不可改變的。 4.9 常類型 7/23/202256面向?qū)ο蟪绦蛟O(shè)計(jì)與Visual C+6.0教程常引用的說明形式如下: const 類型說明符 &引用名; 例如:int n=18;const int &

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論