




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、Visual C+編程基礎(chǔ)Fondamenti di programmazione con Visual C +1C+的注釋C+使用兩個(gè)反斜杠開始一個(gè)注釋行,在兩個(gè)反斜杠后的任何文字都是注釋的一部分。如果需要幾行的注釋,則每一行都由雙反斜杠開始。也可以在C+語句后插入注釋。還可以使用C語言風(fēng)格的注釋,這種注釋可以在幾行間使用。2預(yù)處理指令和C語言一樣,C+使用預(yù)處理器。預(yù)處理器是在編譯器運(yùn)行前執(zhí)行的程序。預(yù)處理器用#include后文件內(nèi)的代碼替換這個(gè)#include指令。我們可以使用事先定義的函數(shù)、類、變量以及其它代碼元素,以減輕我們的工作量。如果用雙引號(hào)把文件名括起來,這就說明這個(gè)文件是程
2、序的一部分。預(yù)處理器首先查看當(dāng)前的目錄,如果沒有找到文件,會(huì)查看在【選項(xiàng)】對(duì)話框中的【路徑】選項(xiàng)卡中定義的路徑。每條預(yù)處理指令占一行,末尾不帶分號(hào)。3常量程序中有一些值是不需變化的,叫做常量。在C+中可以用#define指令告訴預(yù)處理器用字符串的值替換程序文件中的這個(gè)字符串。最好使用#define指令定義一些有意義的名稱,而不應(yīng)該使用無意義的數(shù)字、符號(hào)、使得代碼更具可讀性。常量可以被重新定義為另外的值。C+還提供了一種更好的聲明常量的方法:使用const聲明。采用const方法,可以聲明常數(shù)的數(shù)據(jù)類型。C+會(huì)檢查初始化符號(hào)的數(shù)據(jù)是否與const關(guān)鍵字后聲明的數(shù)據(jù)類型一致。Const關(guān)鍵字在C+
3、中有許多用途,除了聲明常量,它還可以把函數(shù)的參數(shù)和函數(shù)值設(shè)為只讀,使這些值不會(huì)被更改。4關(guān)鍵字關(guān)鍵字是C+內(nèi)部使用的標(biāo)識(shí)符,是語言的組成部分。不能把關(guān)鍵字作為變量、函數(shù)名。5直接量直接量是程序中的值,它是常量,雖然它們存儲(chǔ)在內(nèi)存中,但是不能訪問它們的地址。每個(gè)直接量都有相應(yīng)的類型,如整數(shù)類型的直接量被標(biāo)記為整型。6語句C+語句是以分號(hào)結(jié)尾的用來聲明、命令和計(jì)算的句子。復(fù)合語句是由包含在大括弧中的兩個(gè)以上的語句組成的一個(gè)大語句。7變量和數(shù)據(jù)類型變量是內(nèi)存中被命名的位置,用于存儲(chǔ)程序中的信息。變量名和C+的任何標(biāo)識(shí)符一樣,可是任意長度,并可包括任意字母、數(shù)字和下劃線。類型的大小以字節(jié)為單位,提示這
4、種類型能夠保存的數(shù)值或字符的范圍。帶有unsigned限定符的類型只能保存非負(fù)值,帶有signed限定符的類型能保存負(fù)值、零或正值。匈牙利命名法,思想是變量的數(shù)據(jù)類型成為變量名稱的一部分。它的變量前綴是數(shù)據(jù)類型的縮寫。數(shù)組是包含一定類型的幾個(gè)元素的變量,通過數(shù)組操作符可以獲取或設(shè)置數(shù)組的某個(gè)元素。通過兩個(gè)方括號(hào)聲明一個(gè)二維數(shù)組。字符串是字符串類型的變量,可以用幾種方式聲明字符串,無論用什么方式聲明,可以用指針或數(shù)組的方式來訪問它們。字符串可以用/0結(jié)尾。C+是一種對(duì)類型依賴性很大的語言,編譯器會(huì)進(jìn)行大量的類型檢查工作以確保傳遞給正確的參數(shù)類型和參數(shù)個(gè)數(shù),如果能夠轉(zhuǎn)換類型,編譯器會(huì)自動(dòng)把一定的值
5、轉(zhuǎn)換為合適的類型,否則,編譯器會(huì)報(bào)錯(cuò)。8為變量分配內(nèi)存堆棧是系統(tǒng)使用的臨時(shí)存儲(chǔ)區(qū)域,它是后進(jìn)先出的數(shù)據(jù)結(jié)構(gòu),最后推入的元素,最先彈出。堆棧主要用于函數(shù)調(diào)用。當(dāng)調(diào)用函數(shù)時(shí),各種數(shù)據(jù)被推入函數(shù)的頂部傳遞給函數(shù)的參數(shù)、函數(shù)返回的值、函數(shù)中聲明的局部變量等。堆是一種相對(duì)長期的存儲(chǔ)區(qū)域。程序用C+的new操作符分配堆,對(duì)new的調(diào)用分配所需的內(nèi)存并返回指向內(nèi)存的指針。與堆棧不同,必須通過調(diào)用new明確地分配堆內(nèi)存,也必須通過調(diào)用delete操作符明確地釋放內(nèi)存,堆不會(huì)自動(dòng)釋放內(nèi)存。如果沒有delete釋放占用的堆內(nèi)存,就可能發(fā)生內(nèi)存溢出。內(nèi)存中沒有被釋放的內(nèi)存塊會(huì)浪費(fèi)內(nèi)存空間。9函數(shù)函數(shù)可以看成一個(gè)模塊
6、,可以在程序中多次被調(diào)用,函數(shù)有以下幾種形式。函數(shù)可以帶參數(shù),也可以不帶參數(shù)。參數(shù)是傳遞給函數(shù)的值,函數(shù)需要這些參數(shù)完成工作。函數(shù)可以返回值,也可以不返回值。10C+運(yùn)行時(shí)庫C+編譯器提供了一個(gè)函數(shù)、常量、變量和類型的集合,叫做運(yùn)行時(shí)庫。在Visual C+ 2010中包含了C運(yùn)行時(shí)庫。除了運(yùn)行時(shí)庫外,Visual C+ 2010中包括了標(biāo)準(zhǔn)的C+庫,它是基于C+模板的函數(shù)和類的庫。11main函數(shù)每個(gè)C+程序都從執(zhí)行main函數(shù)開始,它是程序的主體。與其它函數(shù)一樣,main函數(shù)也具有結(jié)果類型,如果實(shí)現(xiàn)聲明了結(jié)果類型,則必須在函數(shù)中使用return語句。12表達(dá)式表達(dá)式是求值的語句,如算術(shù)表達(dá)
7、式、布爾表達(dá)式和關(guān)系表達(dá)式等。操作符包括算術(shù)運(yùn)算、邏輯和關(guān)系運(yùn)算、增量和減量運(yùn)算、位運(yùn)算、賦值語句、size of、算術(shù)條件,逗號(hào)和其它操作符。13控制語句C+的控制語句,包括循環(huán)控制、分支控制、多路分支控制、終止循環(huán)、跳出循環(huán)開始下一個(gè)循環(huán)、go to語句等。 14通過IOSTREAM輸入輸出C out對(duì)象是指向標(biāo)準(zhǔn)C+ I o stream對(duì)象,通常與屏幕或屏幕上的窗口相關(guān)聯(lián),與之對(duì)應(yīng)的輸入流對(duì)象稱為c in t,它指向標(biāo)準(zhǔn)輸入,通常與鍵盤相關(guān)。在Visual C+中,使用插入操作符將字符串插入c out中,使得插入的字符串顯示在命令提示符窗口中。15作用域C+程序并一定能訪問所有變量、類
8、型、常量或函數(shù)。能被訪問的范圍由聲明所使用的作用域決定。聲明為全局作用域的項(xiàng)目不僅在當(dāng)前代碼中可以被訪問,而且在程序的其它部分也能被訪問。每個(gè)函數(shù)或模塊定義了自己的局部作用域。在局部作用域內(nèi)聲明的變量如果與全局變量同名,局部變量將屏蔽全局變量。函數(shù)內(nèi)部的大括號(hào)內(nèi)的代碼,叫做子程序局部作用域。在C+中還有一種類作用域,在類中聲明的成員函數(shù),數(shù)據(jù)成員、類型和嵌套類只在這個(gè)類中可以被訪問。在類成員函數(shù)實(shí)現(xiàn)中也可以被訪問。16指針基礎(chǔ)指針是一個(gè)內(nèi)存地址,在大多數(shù)情況下,指針是另外一個(gè)變量的地址,是C+中重要的數(shù)據(jù)結(jié)構(gòu)。在賦值操作符的左邊,間接量操作符*表示一個(gè)指針,在賦值操作符的右邊,地址操作符&可以
9、獲得變量的地址,這個(gè)地址作為指針的初始值。在C+中聲明變量時(shí),*與數(shù)據(jù)類型相鄰,而且僅作用于離*最近的一個(gè)變量。賦值操作符右邊的*是指針引用操作符。除了使用指針獲得變量的值,還可以使用指針改變變量的值。17數(shù)組和指針C+的指針往往和數(shù)組配合使用。事實(shí)上數(shù)組名就是一個(gè)指向數(shù)組第一個(gè)元素的指針,可以使用指針來實(shí)現(xiàn)數(shù)組。18指針和字符串字符串可以看成一個(gè)由字符構(gòu)成的數(shù)組,所以字符串變量名也是一個(gè)指針。19指針作為函數(shù)的參數(shù)和函數(shù)的結(jié)果在函數(shù)中傳遞參數(shù)的默認(rèn)方法是傳值,傳值過程中,函數(shù)獲取了所傳值的一個(gè)副本,可以根據(jù)需要改變這個(gè)復(fù)制的值,最初的數(shù)據(jù)將保持不變。如果函數(shù)需要傳遞幾個(gè)參數(shù),并需要在函數(shù)中改
10、變所傳送的參數(shù),這時(shí),可以采用傳地址方式。函數(shù)采用指針來改變?cè)瓉淼臄?shù)據(jù)而不必考慮指針?biāo)赶虻刂返膬?nèi)容。如果需要在函數(shù)中避免修改數(shù)據(jù),可以使用const來聲明參數(shù)。指針除了可以指向普通的變量數(shù)組和字符串之外,還可以指向其它類型的變量。和其它類型的變量一樣,指針可以保存在一個(gè)數(shù)組中。20引用C+中引入一個(gè)新的變量引用變量,引用本身不是一個(gè)獨(dú)立的變量,它是指針的另一種表示方式。引用必須初始化為一個(gè)特定的變量,并且在以后的引用中不能引用其它變量。另一種參數(shù)傳遞的方法是通過引用進(jìn)行傳遞。所傳遞的是一個(gè)非引用變量,用來初始化參數(shù)。21頭文件和實(shí)現(xiàn)文件在C+中一般把聲明放在C+的頭文件中(H格式),定義放在
11、實(shí)現(xiàn)文件中(CPP格式),然后使用include語句包含頭文件。許多大型的C+程序可以劃分為幾個(gè)CPP文件,如果其中幾個(gè)CPP文件可能包含相同的聲明,這時(shí)把它們放在同一個(gè)H文件中將節(jié)省大量資源。22類的結(jié)構(gòu)C+的類的結(jié)構(gòu)被分為兩個(gè)部分,第一個(gè)部分描述對(duì)象的外部視圖,對(duì)應(yīng)著抽象數(shù)據(jù)類型的規(guī)范說明。標(biāo)識(shí)符被稱為類名,關(guān)鍵字private和public用于定義在類中聲明的標(biāo)識(shí)符能否被其它程序單元引用。這些標(biāo)識(shí)符用于標(biāo)識(shí)類中聲明的數(shù)據(jù)結(jié)構(gòu)或操作,叫做類的成員,與數(shù)據(jù)結(jié)構(gòu)有關(guān)的成員叫做數(shù)據(jù)成員,與操作有關(guān)的成員叫做成員函數(shù)。Private和public稱為描述這些成員在程序中的可訪問性的訪問控制描述符。
12、23構(gòu)造函數(shù)和析構(gòu)函數(shù)構(gòu)造函數(shù)和析構(gòu)函數(shù)是類中聲明的兩種特殊的成員函數(shù)。構(gòu)造函數(shù)與類名同名,由類名前冠以一個(gè)符號(hào),它的作用是在對(duì)象被創(chuàng)建時(shí)使用特定的值構(gòu)造對(duì)象,或者說把對(duì)象初始化為一個(gè)特定的狀態(tài),而析構(gòu)函數(shù)完成對(duì)象被刪除前的一些清理工作,這些工作一般與構(gòu)造函數(shù)所完成的工作的目的正相反。24成員函數(shù)的內(nèi)聯(lián)實(shí)現(xiàn)可以使用兩種方式使在類中聲明的成員函數(shù)成為內(nèi)聯(lián)函數(shù)。把函數(shù)體放在類的聲明中,可以在類的一個(gè)成員函數(shù)內(nèi)引用在成員函數(shù)之后說明的成員名字。用inline關(guān)鍵字進(jìn)行聲明,對(duì)于使用inline關(guān)鍵字實(shí)現(xiàn)的內(nèi)聯(lián)成員函數(shù),它的聲明必須出現(xiàn)在對(duì)它的每個(gè)調(diào)用之前。25成員函數(shù)和成員函數(shù)名的重載在類中,可以聲
13、明重載函數(shù)及帶有默認(rèn)參數(shù)值的函數(shù)。重載可以實(shí)現(xiàn)資源共享。同一個(gè)標(biāo)識(shí)符可以為同一個(gè)類中的不同成員函數(shù)命名,這個(gè)名表示相似的行為,但行為的實(shí)現(xiàn)不一樣。26WIN64、 Windows.h和SDKWindows 7是基于Windows應(yīng)用程序編程接口的,叫做Windows API。Windows 7使用64位的版本,稱為Win64。API是大量函數(shù)加上數(shù)字常量、宏、結(jié)構(gòu)、類型和相關(guān)項(xiàng)的集合,可以從C+、Visual Basic、匯編語言和其它編程語言中調(diào)用這些函數(shù)。大多數(shù)API定義在稱為Windows.h的文件中,Visual C+ 2010編程環(huán)境中有這個(gè)文件,也可以從Windows平臺(tái)軟件開發(fā)工
14、具包中得到它,但如果沒有特殊的要求,不需要單獨(dú)的SDK。27為不同的wIN64平臺(tái)編程不同的64位操作系統(tǒng)共用相同的API,意味著所有的64位Windows的程序都將具有極高的可移植性。因此,能夠?yàn)閃in7編寫程序,就能為Win8和Win10編寫程序,尤其在利用MFC時(shí)。28多任務(wù)和多線程64位Windows是多任務(wù)的系統(tǒng),能夠同時(shí)運(yùn)行幾個(gè)程序。多任務(wù)是搶占式的。在搶占式多任務(wù)環(huán)境中,操作系統(tǒng)為每個(gè)正在運(yùn)行的程序分配很小的時(shí)間段,看起來就像幾個(gè)程序在同時(shí)運(yùn)行,實(shí)際上,每個(gè)程序都會(huì)暫時(shí)停止運(yùn)行。Windows系統(tǒng)也允許在一個(gè)應(yīng)用程序中執(zhí)行多線程,多線程是與多任務(wù)相關(guān)的概念。大多數(shù)程序只有一個(gè)執(zhí)行
15、線程。在代碼中有一條路徑,每條路徑輪流沿著這條路徑執(zhí)行。但是有些程序可以有幾個(gè)單獨(dú)的執(zhí)行線程同時(shí)運(yùn)行。如在后臺(tái)打印的時(shí)候,你可以在主線程中繼續(xù)其它工作。29事件Windows花費(fèi)大量時(shí)間等待你的動(dòng)作以便作出響應(yīng),所以這種系統(tǒng)也叫事件驅(qū)動(dòng)系統(tǒng)。當(dāng)用戶按下一個(gè)鍵、移動(dòng)鼠標(biāo)或單擊鼠標(biāo)鍵時(shí),電腦通知Windows系統(tǒng)已經(jīng)發(fā)生了一個(gè)事件,以及事件的種類、發(fā)生的時(shí)間、發(fā)生的位置。事件用如下三種方式產(chǎn)生:通過輸入設(shè)備。通過屏幕上一些可視的對(duì)象。來自Windows內(nèi)部。30消息當(dāng)Windows捕獲一條事件后,它會(huì)編寫一條消息,把相關(guān)信息放入一個(gè)數(shù)據(jù)結(jié)構(gòu)中,然后把包含數(shù)據(jù)結(jié)構(gòu)的消息發(fā)送給需要消息的程序。Wind
16、ows消息是在Windows.h文件中用宏定義的常數(shù)。消息常數(shù)名通常為WM_XXX。Windows把消息放入目標(biāo)應(yīng)用程序的消息隊(duì)列中,在消息隊(duì)列中所有消息都處于等待狀態(tài),直到應(yīng)用程序準(zhǔn)備處理它。31消息循環(huán)應(yīng)用程序通常有一段代碼為消息循環(huán)。在應(yīng)用程序的消息隊(duì)列中檢索到WM_QUIT消息以前,這個(gè)循環(huán)會(huì)不斷運(yùn)行。當(dāng)它收到WM_QUIT時(shí),Get Message返回false,循環(huán)停止,這時(shí)應(yīng)用程序終止。當(dāng)Get Message返回一條消息后,循環(huán)把它傳遞給Translate Message函數(shù)來查看這個(gè)消息是不是來自鍵盤,如果是來自鍵盤的消息,則Translate Message把原始鍵盤消息轉(zhuǎn)
17、換為WM_CHAR消息,WM_CHAR消息設(shè)計(jì)為傳遞有關(guān)鍵入字母信息,Translate Message不處理非鍵盤消息。接下來,Dispatch Message函數(shù)確定應(yīng)用程序中應(yīng)該得到消息的窗口,并把消息發(fā)送給它,然后開始下一個(gè)循環(huán)。32消息處理函數(shù)消息處理函數(shù)是用于特定消息的一些代碼。收到消息的應(yīng)用程序會(huì)做些什么,取決于應(yīng)用程序本身。你可以編寫相應(yīng)的處理函數(shù)以處理消息,如果沒有為這個(gè)消息編寫處理函數(shù),需要把這個(gè)消息傳遞給Windows,讓W(xué)indows對(duì)消息進(jìn)行默認(rèn)處理。Windows首先調(diào)用你提供的處理函數(shù),而不用Windows的默認(rèn)方式。實(shí)際上自定義的處理函數(shù)的一些信息,將被傳遞給D
18、ef Window Proc,因此程序員提供的處理函數(shù)和Windows的處理函數(shù)都被調(diào)用了,你提供的處理函數(shù)都是首先被調(diào)用了。33繪圖及設(shè)備環(huán)境Windows具有圖形用戶界面,包括菜單、工具欄、滾動(dòng)條和對(duì)話框中的按鈕等元素,這些元素都是被繪制出來的。當(dāng)程序第一次顯示窗口時(shí),需要第一次繪制窗口的內(nèi)部或客戶區(qū)。客戶區(qū)是由窗口的邊界、標(biāo)題欄以及框架元素包圍的空間。在窗口的任何部分被破壞時(shí),需要重新繪制。Windows不會(huì)保存窗口里的圖像,不能自己重新繪制所有的部分,因此程序需要重新繪制窗口的內(nèi)容。在要求重新繪制時(shí),一般由Windows負(fù)責(zé)繪制窗口的框架,而程序員負(fù)責(zé)繪制客戶區(qū)。與客戶區(qū)對(duì)應(yīng)有一個(gè)Windows對(duì)象稱為設(shè)備環(huán)境。設(shè)備環(huán)境是Windows的一個(gè)數(shù)據(jù)結(jié)構(gòu)。包含這個(gè)區(qū)域的信息,當(dāng)前背景色或區(qū)域圖案、區(qū)域的無效部分等。設(shè)備環(huán)境中最重要的對(duì)象是位圖,它是所繪圖形的邏輯接口。對(duì)設(shè)備環(huán)境的訪問是通過Windows返回的句柄進(jìn)行的。用于描述設(shè)備環(huán)境句柄的變量類型是HDC,Windows提供了許多種類型
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 出口合同范本格式
- Unit 7 Be Wise with Money Period 3 Grammar 教學(xué)設(shè)計(jì) 2024-2025學(xué)年譯林版(2024)七年級(jí)英語上冊(cè)
- 勞務(wù)發(fā)包合同范本
- 動(dòng)物投放景區(qū)合同范本
- 農(nóng)村菜田出租合同范本
- 出租養(yǎng)殖雞場合同范本
- 加工定制窗簾合同范本
- 保潔商場合同范本
- 包地收款合同范本
- 勞務(wù)中介代理招聘合同范本
- 2025年個(gè)體戶合伙投資協(xié)議(三篇)
- 14磁極與方向(教學(xué)設(shè)計(jì))-二年級(jí)科學(xué)下冊(cè)(教科版)
- 2025年山西經(jīng)貿(mào)職業(yè)學(xué)院高職單招職業(yè)技能測試近5年常考版參考題庫含答案解析
- 廣東省佛山市禪城區(qū)2024-2025學(xué)年八年級(jí)上學(xué)期期末考試語文試題(含答案)
- 第04課 輸入輸出與計(jì)算(說課稿)2024-2025學(xué)年六年級(jí)上冊(cè)信息技術(shù)人教版
- 部編五下語文教學(xué)多元評(píng)價(jià)方案
- 2024年09月江蘇2024年蘇州金融租賃校園招考筆試歷年參考題庫附帶答案詳解
- 《榜樣9》觀后感心得體會(huì)二
- 重慶市2024-205學(xué)年秋高二(上)期末考試歷史試卷(含答案)康德卷
- 廣西柳州市2025屆高三第二次模擬考試政治試題含答案
- 設(shè)備維修績效考核方案
評(píng)論
0/150
提交評(píng)論