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

正文內(nèi)容

visualc面向?qū)ο蟪绦蛟O(shè)計(jì)教程與實(shí)驗(yàn)第二版-文庫(kù)吧資料

2025-01-25 07:13本頁(yè)面
  

【正文】 保存與傳遞的過(guò)程中需要時(shí)間和空間的開(kāi)銷 , 使得程序執(zhí)行 效率降低 , 特別是在程序 頻繁地進(jìn)行函數(shù)調(diào)用 以及函數(shù)代碼段比較少時(shí) , 這個(gè)問(wèn)題會(huì)變得更為嚴(yán)重 。 ? 函數(shù)原型與函數(shù)的定義要在 函數(shù)的返回類型 , 函數(shù)名和參數(shù)的類型及數(shù)量 這三條線上保持一致 。 ? 其主要目的是讓 C++編譯程序進(jìn)行類型檢查 , 即形參與實(shí)參的類型匹配檢查 , 以及返回值是否與原型相符 , 以維護(hù)程序的正確性 。 【 例 】 字符串類 string的使用 。 在 C語(yǔ)言中使用字符數(shù)組和字符指針實(shí)現(xiàn)字符串 , 但是在 C++中提供了一種既方便又好用的 string類型 。 // 錯(cuò)誤 , 不能改變指針?biāo)傅闹? pc=dfasdfa。 以下兩個(gè)語(yǔ)句都是錯(cuò)誤的: pc[3]=39。例如: const char* const pc=abcd。 // 不合法 const與指針一起使用的組合情況 : (3) 指向常量的常指針 整個(gè)指針本身不能改變 , 它所指向的值也不能改變 。x39。 創(chuàng)建一個(gè)常指針 , 就是創(chuàng)建不能移動(dòng)的固定指針 , 但是它所指的數(shù)據(jù)可以改變 。 例如: char*const pc=abcd。 例如以下語(yǔ)句是允許的:pc=jkkk。x39。const char*pc=abcd。 這樣做的目的是確保原數(shù)組的數(shù)據(jù)不被破壞,即在函數(shù)中對(duì)數(shù)組元素的操作只許讀,不許寫(xiě)。 (5) 函數(shù)參數(shù)也可以用 const說(shuō)明,用于保證實(shí)參在該函數(shù)內(nèi)部不被改動(dòng),大多數(shù) C++編譯器能對(duì)具有const參數(shù)的函數(shù)進(jìn)行更好的代碼優(yōu)化。 (3) 如果用 const定義的是一個(gè)整型常量 , int可以省略 。 C++建議用const取代 define定義常量 。 const修飾符 define PI const float PI=。 A類學(xué)生的標(biāo)準(zhǔn)是平均分在 80分以上 , 其余都是 B類學(xué)生 。 避免將局部作用域中變量的地址返回 , 就使函數(shù)調(diào)用表達(dá)式作為左值來(lái)使用 。 一般說(shuō) , 當(dāng)返回值不是本函數(shù)內(nèi)定義的局部變量時(shí)就可以返回一個(gè)引用 。ref=int; // error (11) 函數(shù)調(diào)用可以作為左值 引用表達(dá)式是一個(gè)左值表達(dá)式 , 因此它可以出現(xiàn)在形 、 實(shí)參數(shù)的任何一方 。(9) 有空指針 , 無(wú)空引用 (10) 引用不能用數(shù)據(jù)類型來(lái)初始化 。 // num被修改為 100 其中 ref2也是對(duì) num的引用 。ref2=ref1。ref1=num。 例如: int num=50。ref。ref=num。 例如: int num=50。 指針是個(gè)變量 , 可以把它再賦值成其它的地址 , 然而 , 建立引用時(shí)必須進(jìn)行初始化并且決不會(huì)再指向其它不同的變量 。 // a指向變量 b (5) 引用與指針不同 。 p=amp。p=a。例如: int *a。*p。a[5]。 (4) 由于引用不是變量 , 所以 , 不能說(shuō)明引用的引用 ,也不能說(shuō)明數(shù)組元素的類型為引用數(shù)組 , 或指向引用的指針 。但 ref=j。 如 ref=amp。 (3) 一個(gè)變量被聲明為引用時(shí)必須進(jìn)行初始化 , 除非這個(gè)引用是用作函數(shù)的參數(shù)或返回值 , 為引用提供的初始值應(yīng)為變量 ( 包括對(duì)象 ) ?!狈?hào) 。 num+=40; cout num=numendl; coutref=refendl。 include void main() { int num=50; int amp。引用一旦被初始化,就不能再重新賦值。 引用變量名 = 變量名; 對(duì)引用進(jìn)行操作,實(shí)際上就是對(duì)被引用的變量進(jìn)行操作。引用變量名 = 變量名; 或 數(shù)據(jù)類型 amp。 引用運(yùn)算符為 amp。 // ::a表示全局作用域中的變量 a } 引用 引用是 C++語(yǔ)言的一個(gè)特殊的數(shù)據(jù)類型描述 , 用于在程序的不同部分使用兩個(gè)以上的變量名指向同一地址 , 使得對(duì)其中任一個(gè)變量的操作實(shí)際上都是對(duì)同一地址單元進(jìn)行的 。 // 局部變量 coutaendl。 float a=。 注意: 不能用 ::訪問(wèn)函數(shù)中的局部變量。 // 釋放內(nèi)存空間 } 作用域運(yùn)算符 :: 通常情況下,如果全局變量與局部變量同名,那么局部變量在其作用域內(nèi)具有較高的優(yōu)先權(quán)。 coutendl。in。 coutNow output the array : endl。in。 exit(1)。 if((p=new int[n])==0) {cout can39。 cinn。 // 定義數(shù)組元素的個(gè)數(shù) int *p。 include iostream using namespace std。 exit(1)。 例如:int *p= new int[100]。 有時(shí) , 并不能保證一定可以從堆內(nèi)存中獲得所需空間 ,當(dāng)不能成功地分配到所需要的內(nèi)存時(shí) , new返回 0, 即空指針 。 其形式為: delete 指針變量;或 delete [ ]指針變量; 同樣 , 也可以用 new來(lái)為多維數(shù)組分配空間 , 但是除第一維可以為變量外 , 其它維數(shù)都必須是常量 。 使用 new分配數(shù)組時(shí) , 不能提供初始值 。 *p=5。 在用 new分配內(nèi)存的同時(shí)進(jìn)行初始化 。 delete p。 // 分配內(nèi)存空間 *p=5。 void main() {int *p。 3. 注意: (1) 用 new獲取的內(nèi)存空間 , 必須用 delete進(jìn)行釋放; (2) 對(duì)一個(gè)指針只能調(diào)用一次 delete; (3) 用 delete運(yùn)算符作用的對(duì)象必須是用 new分配的內(nèi)存空間的首地址 。 堆內(nèi)存可以按照要求進(jìn)行分配 , 程序?qū)?nèi)存的需求量隨時(shí)會(huì)發(fā)生變化 , 有時(shí)程序在運(yùn)行中可能會(huì)不再需要由 new分配的內(nèi)存空間 , 而且程序還未運(yùn)行結(jié)束 ,這時(shí)就需要把先前占用的內(nèi)存空間釋放給堆內(nèi)存 , 以后重新分配 , 供程序的其它部分使用 。 說(shuō)明: 動(dòng)態(tài)內(nèi)存的分配與釋放 指針變量 = new 數(shù)據(jù)類型 。 (3) 強(qiáng)制類型轉(zhuǎn)換應(yīng)當(dāng)用在不做轉(zhuǎn)換將影響表達(dá)式結(jié)果的正確性或精度 , 或不能完成相應(yīng)運(yùn)算的場(chǎng)合 。 (2) 強(qiáng)制類型轉(zhuǎn)換符優(yōu)先級(jí)較高 , 只對(duì)緊隨其后的表達(dá)式起作用 , 而對(duì)其他部分不起作用 。f=float(b)。 如下列代碼段: int b。 } 強(qiáng)制類型轉(zhuǎn)換 格式: (數(shù)據(jù)類型 ) (表達(dá)式 ) 數(shù)據(jù)類型 (表達(dá)式 ) (1) 通過(guò)強(qiáng)制類型轉(zhuǎn)換 , 得到一個(gè)所需類型的中間值 ,該中間值被引用后即自動(dòng)釋放 。 cin。 student wang。 int n。 float math。 includeiostream using namespace std。 類似地在 C++語(yǔ)言中聯(lián)合名 、 枚舉名也可在定義后獨(dú)立地作為類型名使用 。 } 變量的定義 在 C語(yǔ)言中 , 局部變量說(shuō)明必須置于可執(zhí)行代碼段之前 ,不允許局部變量聲明和可執(zhí)行代碼混合在一起 。 coutname is nameendl。 coutHow old are you:。 coutplease input your name:。 void main() { char name[10]。C++語(yǔ)言的保留字為: cout“輸出內(nèi)容 ” … ; // cout為標(biāo)準(zhǔn)輸出流對(duì)象 ( 默認(rèn)輸出到顯示器 ) cin“輸入內(nèi)容 ” … ; // cin為標(biāo)準(zhǔn)輸入流對(duì)象 (默認(rèn)從鍵盤(pán)輸入 ) include 【 例 】 C++的輸入輸出舉例 。 注意: 如果使用了名空間 std,則在使用include編譯預(yù)處理命令包含頭文件時(shí),必須去掉頭文件的擴(kuò)展名 .h,否則會(huì)出錯(cuò)。在采用標(biāo)準(zhǔn)C++的平臺(tái)上使用標(biāo)準(zhǔn) C++庫(kù)中的組件,只要寫(xiě)一個(gè) using指示符: using namespace std。 using指示符以關(guān)鍵字 using開(kāi)頭,后面是關(guān)鍵字 namespace,然后是名字空間名。 // 名字空間類成員 matrix的 using聲明 以后在程序中使用 matrix時(shí) , 就可以直接使用成員名 , 而不必使用限定修飾名 。 使用 using聲明可只寫(xiě)一次限定修飾名。 名字空間域可分層嵌套,同樣有分層屏蔽作用。 如 : ns1::a, ns1::fun1()等等 。 在域外使用域內(nèi)的成員時(shí) , 需加上名字空間名作為前綴 , 后面加上域操作符 “ ::” 。 fun1(){…… } } 花括號(hào)括起來(lái)的部分稱聲明塊 。 名字空間(名空間 namespace) 名字空間域是隨標(biāo)準(zhǔn) C++而引入的。 注釋符 1. 段注釋: /*… */ 2. 單行注釋: // 當(dāng)只做單行注釋時(shí)便可用 “ //”符號(hào)表示從此符號(hào)起至行尾均為行注釋內(nèi)容 。 “ cpp”的文件擴(kuò)展名與操作系統(tǒng)無(wú)關(guān) 。 C++語(yǔ)言的文件擴(kuò)展名 為了使編譯器能夠區(qū)別是 C語(yǔ)言還是 C++語(yǔ)言 ,C++語(yǔ)言體系規(guī)定用 “ .cpp”( 意即 C PlusPlus)作為 C++語(yǔ)言源文件的擴(kuò)展名以區(qū)別于 C語(yǔ)言用的 “ .C”文件擴(kuò)展名 。 第 2章 C++對(duì) C的擴(kuò)充 第 2章 C++對(duì) C的擴(kuò)充 C++的特點(diǎn) C++語(yǔ)言的文件擴(kuò)展名 注釋符 名字空間 C++語(yǔ)言的輸入輸出 變量的定義 強(qiáng)制類型轉(zhuǎn)換 動(dòng)態(tài)內(nèi)存的分配與釋放 作用域運(yùn)算符 :: 引用 const修飾符 字符串 C++語(yǔ)言中函數(shù)的新特性 習(xí)題 OK C++的特點(diǎn) C++語(yǔ)言既保留了 C語(yǔ)言的有效性、靈活性、便于移植等全部精華和特點(diǎn),又添加了 面向?qū)ο缶幊痰闹С?,具有強(qiáng)大的編程功能,可方便地構(gòu)造出模擬現(xiàn)實(shí)問(wèn)題的實(shí)體和操作;編寫(xiě)出的程序具有結(jié)構(gòu)清晰、易于擴(kuò)充等優(yōu)良特性,適合于各種應(yīng)用軟件、系統(tǒng)軟件的程序設(shè)計(jì)。 實(shí)驗(yàn)內(nèi)容 你的程序設(shè)計(jì)能力與你投入到計(jì)算機(jī)上的時(shí)間成正比。 2. 輸入 5個(gè)字符串 , 按英文字典排序 ,由小到大順序輸出 。 4. 學(xué)會(huì)完整的 C++程序開(kāi)發(fā)過(guò)程 ( 編輯 、 編譯 、 鏈接 、 調(diào)試 、 運(yùn)行 、 查看結(jié)果 ) 。 2. 熟悉 Visual C++ ,熟悉常用的菜單命令 。 ? 【例 】 使用面向?qū)ο蟪绦蛟O(shè)計(jì)方法,編寫(xiě)一對(duì)堆棧進(jìn)行處理的程序,包括壓棧和彈棧操作。 這一步一般稱為面向?qū)ο蟪绦蛟O(shè)計(jì) , 簡(jiǎn)稱為 OOP。 (4) 程序?qū)崿F(xiàn) 。 即對(duì)分析的結(jié)果作進(jìn)一步的抽象 、 歸類 、整理 , 最終以規(guī)范的形式描述對(duì)象和類 。 這一階段稱為面向?qū)ο蠓治?, 簡(jiǎn)稱為 OOA。 (2) 分析問(wèn)題的性質(zhì)和求解問(wèn)題 。 即對(duì)應(yīng)用系統(tǒng)將要實(shí)現(xiàn)的功能以及用戶對(duì)系統(tǒng)開(kāi)發(fā)的需求進(jìn)行調(diào)查研究 。真正的面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言提供了特定的語(yǔ)法成分來(lái)保證和支持面向?qū)ο蟪绦蛟O(shè)計(jì) , 并且提供了繼承性 、 多態(tài)性和動(dòng)態(tài)鏈接機(jī)制 , 使得類和類庫(kù)成為可重用的模塊 。 面向?qū)ο笳Z(yǔ)言可以分為兩大類 , 純粹的面向?qū)ο笳Z(yǔ)言和混合型的面向?qū)ο笳Z(yǔ)言 。 它將 “ 類 ” 看作是用戶定義類型 , 使其擴(kuò)充比較自然 。 (4) C家族 在 19世紀(jì) 80年代 , C語(yǔ)言成為一種極其流行 、 應(yīng)用非常廣泛的語(yǔ)言 。它起源于 Simula語(yǔ)言。 (2) Simula Simula語(yǔ)言是 60年代開(kāi)發(fā)出來(lái)的,在 Simula中引入了幾個(gè)面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言中最重要的概念和特性,即數(shù)據(jù)抽象、類和繼承性機(jī)制。使用多態(tài)性可以大大提高了我們解決復(fù)雜問(wèn)題的能力。 C++語(yǔ)言支持兩種多態(tài)性即編譯時(shí)的多態(tài)性和運(yùn)行時(shí)的多態(tài)性。 (4) 特化繼承 :例如教師是一類特殊的人 , 他們比一般人具有更多的特有信息 , 這就是特化繼承 。 汽車具有了交通工具的所有特征 ,任何一輛汽車都是一種交通工具 , 這便是包含繼承 , 即交通工具包含了汽車的所有特征 。 ( 3) 繼承性 (1) 取代繼承 :例如一個(gè)徒弟從其師傅那里學(xué)到師傅的所有技術(shù) , 則在任何需要師傅的地方都可以由徒弟來(lái)代替 。 從繼承源上劃分 繼承可分為單繼承(單一繼承)和多繼承(多重繼承)。它使得某類對(duì)象可以繼承另外一類對(duì)象的特征和能力。 (2) 封裝性 從已有的對(duì)象類型出發(fā)建立一種新的對(duì)象類型,使它繼承原對(duì)象的特點(diǎn)和功能,這種思想是面向?qū)ο笤O(shè)計(jì)方法的主要貢獻(xiàn)。數(shù)據(jù)封裝就是給數(shù)據(jù)提供了與外界聯(lián)系的標(biāo)準(zhǔn)接口,無(wú)論是誰(shuí),只有通過(guò)這些接口,使用規(guī)范的方式,才能訪問(wèn)這些數(shù)據(jù)。對(duì)于一個(gè)具體的類,它有許多具體的個(gè)體,我們稱這些個(gè)體叫做 “ 對(duì)象 ” 。在這一過(guò)程中,人們主要使用兩種方法:從特殊到一般的歸納法
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1