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

正文內(nèi)容

《c講義完整版》ppt課件-全文預(yù)覽

2025-06-02 04:19 上一頁面

下一頁面
  

【正文】 nclude class Watch { ......//類的定義略 } //......類的實(shí)現(xiàn)略 void main(void) { Watch myWatch。 int getSno() { return sno。 int getAge() { return age。 public: void SetTime(int NewH, int NewM, int NewS)。 int i。 void SetTime(int NewH, int NewM, int NewS)。 i=。 void ShowTime()。 } 類的概念和定義 ? 私有成員 (私有數(shù)據(jù)成員和私有成員函數(shù) ) ? 在關(guān)鍵字 private后面聲明, 只允許本類中的函數(shù)訪問,而類外部的任何函數(shù)都不能訪問。 類的概念和定義 ? 內(nèi)聯(lián)成員函數(shù)的外部實(shí)現(xiàn) inline void Location:: Init(int initX,int initY) { X=initX。 int GetX()。} int GetY() {return Y。 ? 在外部實(shí)現(xiàn)中顯式使用 inline關(guān)鍵字。 } 類的概念和定義 ? 成員數(shù)據(jù) ? 與一般的變量定義相同,但需要將它放在類的定義體中 ? 成員函數(shù) ? 在類中說明原形,在類外定義函數(shù)體實(shí)現(xiàn),并在函數(shù)名前使用類名加以限定。 成員數(shù)據(jù) 成員函數(shù) 類的概念和定義 void Watch :: SetTime(int NewH, int NewM, int NewS) { Hour=NewH。 類的概念和定義 ? 類的概念 ? 類是用來描述一組對象的相同屬性和行為,它為屬于該類的全部對象提供了統(tǒng)一的抽象描述 ?包括抽象屬性和抽象行為 ? 利用類可以實(shí)現(xiàn)細(xì)節(jié)進(jìn)行封裝 ?包括用于實(shí)現(xiàn)的成員數(shù)據(jù)和成員函數(shù) ? 利用類易于編寫大型復(fù)雜程序,其模塊化程度比 C中采用函數(shù)更高 類的概念和定義 ? 類的定義 class 類名稱 { public: 公有成員 (外部接口) private: 私有成員 (實(shí)現(xiàn)細(xì)節(jié) ) protected: 保護(hù)型成員 (用于類層次的訪問控制 ) } ? 類是一種用戶自定義的類型 類的概念和定義 class Watch { public: void SetTime(int NewH, int NewM, int NewS)。 private: int Hour,Minute,Second。 }。 ? 抽象的實(shí)現(xiàn):通過類定義中的 public來實(shí)現(xiàn)。 面向?qū)ο缶幊傻幕咎攸c(diǎn) ? 抽象 ? 封裝 ? 繼承 ? 多態(tài)性 面向?qū)ο缶幊傻幕咎攸c(diǎn) 抽象 ? 抽象是對具體對象(問題)進(jìn)行概括,抽出這一類對象的公共性質(zhì)并加以描述的過程。我們也稱 堆空間為自由空間( free store)就是這個(gè)原因。 new與 delete 是配對使用的, delete只能釋放堆空間。 返回一個(gè)空指針( NULL),表示 發(fā)生了異常,堆資源不足,分配失敗。 delete []pc是將 n個(gè)字符的空間釋放,而用delete pc則只釋放了一個(gè)字符的空間; 其次如果有一個(gè) char *pc1,令 pc1=p,同樣可用delete [] pc1來釋放該空間。 coutpcendl。 cout請輸入動態(tài)數(shù)組的元素個(gè)數(shù) endl。 exit(1)。 注意這時(shí)釋放了 pi所指的目標(biāo)的內(nèi)存空間,也就是撤銷了該目標(biāo),稱動態(tài)內(nèi)存釋放( dynamic memory deallocation),但指針 pi本身并沒有撤銷,它自己仍然存在,該指針?biāo)純?nèi)存空間并未釋放。 2 . 當(dāng) pi生命周期結(jié)束時(shí) , 必須釋放 pi所指向的目標(biāo): delete pi。 結(jié)果值: 成功: T類型的指針,指向新分配的內(nèi)存。 堆內(nèi)存的分配與釋放 if ((array=(int*)malloc(arraysize*sizeof(int)))==NULL) { cout―can‘t allocate more memory.\n‖。 new運(yùn)算符返回的是一個(gè)指向所分配類型變量(對象)的指針。 C++的內(nèi)存格局 ? 全局?jǐn)?shù)據(jù)區(qū)( data area) ? 代碼區(qū)( code area) ? 棧區(qū)( stack area) ? 堆區(qū)( heap area) C++的內(nèi)存格局 全局變量、靜態(tài)數(shù)據(jù)、常量存放在 全局?jǐn)?shù)據(jù)區(qū) ; 所有類成員函數(shù)和非成員函數(shù)代碼存放在 代碼區(qū) ; 為運(yùn)行函數(shù)而分配的局部變量、函數(shù)參數(shù)、返回?cái)?shù)據(jù)、返回地址等存放在 棧區(qū); 其余的空間都被稱為 堆區(qū) 。 ? 引用定義說明 ? 引用必須在定義時(shí)進(jìn)行初始化 ? 被引用的變量必須在引用定義之前定義 ? 引用一經(jīng)定義,便無法重新引用其它變量 引用 ? 對引用概念的理解 ? int i=10, amp。 // output: i=2 i++。 i=1。 練習(xí) 用指針寫一個(gè) swap函數(shù),交換兩個(gè)整數(shù) a和b的值。 double *pd=amp。 // 編譯錯(cuò)誤 ? //試圖修改常量指針指向的對象值 void類型 ; void fun(void) { return 。num。num。 ? 其含義是指針變量的值不可改變 ? 不允許修改指針變量的地址值 ? 可以修改指針指向的變量值,如果指向的對象不是一個(gè)常量的話 ? 例子 ? int * const ptr1。i。 const int i = 10。i *ptr = 15。 int i=10。 const char str[10]=―hehehe‖。 ptr = amp。 return。 } 作用域 作用域分辨操作符 ? 全局變量訪問 ? ::global include int global = 10。 } 作用域 一個(gè)簡單的例子 include int global = 10。 例 int x。 return。 coutWele to c++!\n。 ? 1983年正式取名為 C++。 面向?qū)ο蟮幕靖拍? 多態(tài)性 ? 多態(tài)性是指在一般類中定義的屬性或行為,被特殊類繼承之后,可以具有不同的數(shù)據(jù)類型或表現(xiàn)出不同的行為。對外形成一個(gè)邊界(或者說一道屏障),只保留有限的對外接口使之與外部發(fā)生聯(lián)系。 ? 例如,石頭、樹木、汽車、房屋等都是人們在長期的生產(chǎn)和生活實(shí)踐中抽象出的概念。對象由一組屬性和一組行為構(gòu)成。 ? 類通過一個(gè)簡單的外部接口,與外界發(fā)生關(guān)系 ? 基本設(shè)計(jì)思想 ? 封裝 ? 軟件復(fù)用 面向?qū)ο蟮脑O(shè)計(jì)思想 ? 面向?qū)ο蟮某绦蛟O(shè)計(jì)方法 ? 優(yōu)點(diǎn) ?程序模塊間的關(guān)系更為簡單,程序模塊的獨(dú)立性、數(shù)據(jù)的安全性就有了良好的保障。C++語言編程 寧 博 程序設(shè)計(jì)方法的發(fā)展歷程 ? 面向過程的程序設(shè)計(jì)方法 ? 程序的目的:用于數(shù)學(xué)計(jì)算 ? 主要工作:設(shè)計(jì)求解問題的過程 ? 缺點(diǎn):對于龐大、復(fù)雜的程序難以開發(fā)和維護(hù) 程序設(shè)計(jì)方法的發(fā)展歷程 ? 面向過程的結(jié)構(gòu)化程序設(shè)計(jì)方法 ? 設(shè)計(jì)思路 ?自頂向下、逐步求精。 ? 對同類型對象抽象出其共性,形成類。 ? 是構(gòu)成世界的一個(gè)獨(dú)立單位,具有: ?靜態(tài)特征:可以用某種數(shù)據(jù)來描述 ?動態(tài)特征:對象所表現(xiàn)的行為或具有的功能 面向?qū)ο蟮幕靖拍? 對象 ? 面向?qū)ο蠓椒ㄖ械膶ο? ? 是系統(tǒng)用來描述客觀事物的一個(gè)實(shí)體,它是用來構(gòu)成系統(tǒng)的一個(gè)基本單位。 面向?qū)ο蟮幕靖拍? 類 ? 分類 ——人類通常的思維方法 ? 分類所依據(jù)的原則 ——抽象 ? 忽略事物的非本質(zhì)特征,只注意那些與當(dāng)前目標(biāo)有關(guān)的本質(zhì)特征,從而找出事物的共性,把具有共同性質(zhì)的事物劃分為一類,得出一個(gè)抽象的概念。 面向?qū)ο蟮幕靖拍? 封裝 ? 把對象的屬性和行為結(jié)合成一個(gè)獨(dú)立的系統(tǒng)單位 ? 盡可能隱蔽對象的內(nèi)部細(xì)節(jié)。 ? 例如:將 Person作為一個(gè)一般類, Student便是一個(gè)特殊類。 ? 引入了類的機(jī)制,最初的 C++被稱為 帶類的 C。 C++的特點(diǎn) ? 全面兼容 C ? 它保持了 C的簡潔、高效和接近匯編語言等特點(diǎn) ? 對 C的類型系統(tǒng)進(jìn)行了擴(kuò)充 ? C++也支持面向過程的程序設(shè)計(jì),不是一個(gè)純正的面向?qū)ο蟮恼Z言 ? 支持面向?qū)ο蟮姆椒? ? 類、對象、繼承、抽象、封裝、 … . 一個(gè)簡單的 C++程序?qū)嵗? include void main(void) { coutHello!\n。 // Get a key from console if (key == ‘\x1B’ { printf(“\nEscape! ”)。實(shí)現(xiàn)方式: include和 extern ? 類作用域:變量定義在類中,在類范圍內(nèi)有效 作用域 : : 運(yùn)算符 : 指明作用域。 return。 return。 printf(―The value of outer global is : %d\n‖, ::global)。 const int i=10。 // 錯(cuò)誤操作,試圖修改指針指向的內(nèi)容 常量指針 ? 例子 const char * ptr。 // 錯(cuò)誤操作,試圖修改指針指向的內(nèi)容 常量指針 const int * ptr。 // 指針賦值 , 等價(jià)于 (const int *)amp。 輸出結(jié)果為: 11 常量指針 ? 不允許將 const類型的變量地址賦值給一般的變量指針 int * ptr。 // 編譯錯(cuò)誤 ptr = (int *)amp。 輸出結(jié)果為: 11 指針常量 ? 定義格式 type * const ptr_name。 ? int * const const_ptr = amp。 ? int const * ptr = amp。 // 編譯錯(cuò)誤 ? //試圖修改一個(gè)指針常量的地址值 ? *ptr = num。 double a=。 p=pd。j=i。 cout―i=‖ iendl。 ref_name = var_name。打印交換前后 a,b的值。 在 C++中 , 申請和釋放堆中分配的存貯空間 , 分別使用new和 delete的兩個(gè)運(yùn)算符來完成 , 其使用的格式如下: 指針變量名 =new 類型名 (初始化式 ); delete 指針名 。 void free(void *)。 堆內(nèi)存的分配與釋放 new new 類型名 T(初值列表) 功能: 在程序執(zhí)行期間,申請用于存放 T類型對象的內(nèi)存空間,并依據(jù)初值列表調(diào)用合適的構(gòu)造函數(shù)。 堆內(nèi)存的分配與釋放 1.用初始化式 (initializer)來顯式初始化 例如: int *pi=new int(0)。 2 . 當(dāng) pi生命周期結(jié)束時(shí) , 必須釋放 pi所指向的目標(biāo): delete pi。 堆內(nèi)存的分配與釋放 if ((array=new int [arraysize])==NULL) { cout―can‘t allocate more memory.\n‖。 char *pc。 // strcpy(pc,堆內(nèi)存的動態(tài)分配 )。 } 堆內(nèi)存的分配與釋放 動態(tài)分配的三個(gè)特點(diǎn):首先,變量 n在編譯時(shí)沒有確定的值,而是在運(yùn)行中輸入,按運(yùn)行時(shí)所需分配堆空間,這一點(diǎn)是動態(tài)分配的優(yōu)點(diǎn),可克服數(shù)組“大開小用”的弊端。 堆內(nèi)存的分配與釋放 指針使用的幾個(gè)問題: 1.動態(tài)分配失敗。) 實(shí)際意思是刪除了 p所指的目標(biāo)(變量或?qū)ο蟮龋?,釋放了它所占的堆空間,而不是刪除p本身,釋放堆空間后,p成了空懸指針 堆內(nèi)存的分配與釋放 3. 內(nèi)存泄漏( memory leak)和重復(fù)釋放 。 無名對象,
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1