




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、面向?qū)ο蟪绦蛟O計任課教師信息課程目標課程目標課程學習方法成績評定成績評定教材使用 良好的編程習慣int fun3(int i, const char* j) int a = 0, b = 0, c = 0;a = fun1(j);b = fun2(j);c = b a i;if(c 0) cout error; return -1;else return c;良好的編程習慣 int WithdrawMoney(int _money, const char* _identity) int loanMoney = 0, totalMoney = 0, leftMoney = 0; loanMone
2、y = GetLoanMoney(_identity); totalMoney = GetTotalMoney(_identity); leftMoney = totalMoney - loanMoney - _money; if(leftMoney 0) cout there is no enough money left; return -1; else return leftMoney; 良好的編程習慣 不合適的命名方法:不合適的命名方法: numberOfPeopleOnTheChinaOlympicTeam 適宜長度的命名方法:適宜長度的命名方法: chTeamMembers, ch
3、MemberCount 良好的編程習慣不好的例子不好的例子: for(int i = 0; i total; i+) while(flag = 1) 比較好的更改:比較好的更改:for(int teamIndex = 0; teamIndex teamCount; teamIndex+) while(morePeople = 1) 良好的編程習慣:一套目前使用最廣泛的前綴命名法,其主要包括屬性前綴,類型前綴以及描述前綴三種。屬性前綴 g_xx: 全局變量 c_xx:常量 m_xx:成員變量s_xx:靜態(tài)變量類型前綴 指針:p 函數(shù):fn 布爾型:b 計數(shù): c/cnt 整形: i 字符:ch
4、浮點數(shù):f/d 長整形: l 無符號:u 字符串: sz 字: w 字節(jié): by 函數(shù): fn良好的編程習慣描述前綴: 最大: Max 最小: Min 初始化: Init 源:Src 目的: Dest 臨時: T e.g. g_cchNumber pszCompName pfnIsEmpty bool Copy(string srcData, string destData) 對字符進行計數(shù)的全局變量指向字符串的指針,表示公司名指向函數(shù)的指針,判斷是否為空C+程序語言概述入門完全兼容C語言的結(jié)構(gòu)化編程模式(C語言)面向?qū)ο蟪绦蛟O計(傳統(tǒng)意義的C+)通用模板庫STL:Standard Templ
5、ate Library范式編程(模板化開發(fā)語言)C+語言概述編程環(huán)境C+語言的編程環(huán)境: 推薦使用:Visual Studio 2005以上版本C+語言概述Hello WorldJ必不可少的Hello World程序 #include using namespace std; int main() cout “Hello World” endl; return 0; C+標準頭文件C+標準命名空間cout為C+的輸出流C+語言概述關(guān)鍵字 C+包括了60個關(guān)鍵字,和C語言相比增加了28個關(guān)鍵字,分別是:面向?qū)ο螅篶lass, this, virtual, typename typeid, fri
6、end, public, private, protected異常處理:throw, catch類型轉(zhuǎn)換:const_cast, static_cast, dynamic_cast, reinterpret_cast模版: template命名空間:namespace, using C+語言概述關(guān)鍵字 運算符: operator, new, delete布爾運算: bool, false, true其它: explicit, inline, mutable structC+語言概述數(shù)據(jù)類型 和C語言的數(shù)據(jù)類型基本相同,主要包括: char(1), unsigned char(1), short
7、(2), unsigned short(2), int(4), unsigned int(4), long(4) , unsigned long(4), float(4), double(8), long double(8)。 增加的數(shù)據(jù)類型為:bool(1) C語言的bool定義方式一般為:#define int BOOL#define TRUE 1#define FALSE 0L問題在于占用了問題在于占用了4個字節(jié)個字節(jié)C+語言概述控制語句 C+的控制語句與C語言完全相同,主要包括: 選擇控制: if, else-if, switch-case 循環(huán)控制:while, do-while,
8、for; 其它:break, continue, goto.C+語言概述輸入輸出 例:cout “Hello world”; cout “a + b = ” 表達式 表達式 例: int a, b; cin a b; 在鍵盤上輸入 5 6 cout a “ ” b endl; 輸出結(jié)果為:5 6使用時必須包含:#include endl為控制字符,即回車或等同于nC+語言概述輸入輸出3、輸入輸出控制 操作符含義dec十進制表示hex十六進制表示oct八進制表示ws提取空白符endl插入換行符ends插入空格setprecision設置精度(包含小數(shù)點)setw設置域?qū)?!必須使?include
9、 C+語言概述常量const&回顧:C語言中常量定義 #define PI 3.1415926M存在的問題:非類型變量,容易在使用時出錯。因此,引入了const限定符用于定義一個常變量。&const的作用:定義一個變量,其具有固定的值,不允許修改,因此必須在申明時初始化。例1: const int i = 10; int const j = 10; i = i + 3; j = j 5; J推薦使用L不推薦使用L編譯出錯L編譯出錯C+語言概述常量const!const與指針& 指針簡單回顧:int m = 10;int *p = &m; &指向const的指針(指針指向的地址中的內(nèi)容不能修改)
10、例:int m = 10; const int* p = &m; (*p)+; 10指針p mJ推薦使用L不推薦使用L編譯出錯C+語言概述常量const&const指針(即指針本身是不能修改的) 例: int m = 10, n = 11; int * const p = &m; p = &n;C 區(qū)分的技巧 主要是看主要是看const是在是在*號的哪邊,如果是在左邊,即為指號的哪邊,如果是在左邊,即為指向向const的指針;如果是在右邊,即為的指針;如果是在右邊,即為const指針指針1011mn指針pp只能指向m試圖指向n,出錯C+語言概述常量const&指向const的const指針:
11、const int* const p = 一個地址; int const* const p = 一個地址; 例: int m = 10, n = 11; const int* const p = &m; (*p)+; p = &n; L編譯出錯L編譯出錯C+語言概述常量const8綜合實例: int a = 3, b = 4; const int* p1; int const* p2; int* const p3 = &a; const int* const p4 = &a; p1 = &a, p2 = &b; *p1 = 5, *p2 = 8; *p3 = 5; p3 = p1; p4 =
12、p1; *p4 = 4;J正確L非法,因為指針指向的內(nèi)容不能被修改J正確L非法,指針本身不能改變L非法,因為指針指向的內(nèi)容不能被修改L非法,指針本身不能改變C+語言概述引用 引用是C+對C語言的一個重要擴充,其實質(zhì)是一種別名別名機制。引用所使用的符號為:& 例: int a = 10; int &b = a; cout a endl; cout b endl;J此時輸出的結(jié)果為:1010 10 a 10 aC+語言概述引用 int a = 10; int &b = a; cout &b endl &a; a = a * a; cout a endl b;別名:b!輸出的地址是一致的別名:b 1
13、00 a輸出結(jié)果為:100100C+語言概述引用M引用使用的注意事項:!引用在聲明時必須初始化例: int &b; int max(int &a, int &b); !引用在初始化后不能申明為另一變量的引用。例: int a = 10, c = 5; int &b = a; &b = c; b = c; L非法J可行J可行L非法C+語言概述引用M引用使用的注意事項:!指針的引用例1:int m = 10;int &n = m;int *p = &n;cout m endl n endl *p C+語言概述引用!指針的引用 例2: int m = 5; int *p = &m; int* &q
14、= p; int n = 10; p = &n; cout *p endl *q 別名指針q-m輸出結(jié)果,均為10C+語言概述引用!引用的好處 例1:寫一個交換兩個變量值的程序。 void swap(int *a, int *b) int temp = *a; *a = *b; *b = temp; void main() int i = 10, j = 11; swap(&i, &j); 1011ija-b-1110ia-b-jC+語言概述引用!引用往往和const一起使用4關(guān)于const的例子: const int i = 10; i+;Cconst和引用具有一個共同的特征:即必須在申明時
15、同時初始化,這也注定const和引用會成為一對“好基友”。例1: int i = 10; const int& b = i; b+;M此時編譯器會報錯,因為我們試圖更改一個常量的值M此時編譯器會報錯,因為我們試圖更改一個常量的值C+語言概述引用!引用的好處 引入引用后例1的更改: void swap(int &a, int &b) int temp = a; a = b; b = temp; void main() int i = 10, j = 11; swap(i, j); C+語言概述引用!引用的好處 例2: struct Student char name10; /包含了很多的屬性 v
16、oid SomeFunction(Student stu) /實現(xiàn)某種功能 /in Main Student student1; SomeFunction(student1);JVoid SomeFunction(Student& stu)C+語言概述類型別名 通用用法: typedef 原類型 類型別名; 例1: typedef int Integer; Integer i = 10; 例2: typedef int* Integer_Pointer; int i = 10; Integer_Pointer p = &i;int i = 10int *p = &iC+語言概述類型別名 例3:
17、 typedef int (*Add_Func) (int, int); 實際上定義了一個函數(shù)指針,指向了一個返回值為int型,且接收兩個int型參數(shù)的函數(shù)。 int Add(int num1, int num2) return num1 + num2; void main() Add_Func fun1 = Add; cout fun1(2,5); 輸出結(jié)果為7Fvector:const_iteratorC+語言概述函數(shù)重載 int Max(int a, int b) return a = b ? a : b; float Max1(float a, float b) double Max2
18、(double a, double b) !重載的目的:實現(xiàn)一物多用。 int Max(int a, int b) float Max(float a, float b) double Max(double a, double b) int a = 10, b = 10;float m = 3.21, n = 4.25;Max(a,b); /調(diào)用int版本Max(m,n); / 調(diào)用float版本C+語言概述動態(tài)內(nèi)存分配1、內(nèi)存分配不得不提的兩個概念:堆和棧C在堆上申請的內(nèi)存必須手動釋放,而在棧上申請的內(nèi)存由操作系統(tǒng)自動釋放。C+語言概述動態(tài)內(nèi)存分配2、malloc和free的回顧: mall
19、oc原型:void* malloc(long numBytes); free原型: void free(void* byte); 例: char *ptr = (char*)malloc(100*sizeof(char); if(ptr != null) /do something free(ptr);L缺點1:必須進行強制轉(zhuǎn)換L缺點2:需計算占用空間字節(jié)數(shù)L缺點3:由于是函數(shù),執(zhí)行效率不高C+語言概述動態(tài)內(nèi)存分配3、 new的一般格式: 申請一個普通變量空間申請一個數(shù)組空間 例: int *p = new int(10);float* p = new float(3.1415926);cha
20、r *p = new char100; int size = 10; int *p = new intsize;C+語言概述動態(tài)內(nèi)存分配4、delete的一般格式: 例: int *p = new int(10);float* p = new float(3.1415926);char *p = new char100;delete p;delete p;delete p;釋放一個普通變量空間釋放一個數(shù)組空間C+語言概述動態(tài)內(nèi)存分配!思考:怎么樣用new和delete來動態(tài)分配一個二維數(shù)組。 例:用new和delete動態(tài)分配一個包含3行,每行4個元素的二維數(shù)組。 C+語言概述動態(tài)內(nèi)存分配&分
21、配步驟: 第一步:動態(tài)申請一個包含3個指針元素的數(shù)組。 int *p = new (int*)3; 第二步:依次動態(tài)申請三個包含4個元素的數(shù)組。 for(int i = 0; i 3; i+) pi = new int4; &釋放步驟: 第一步:依次釋放動態(tài)創(chuàng)建的包含4個元素的數(shù)組。 for(int i = 0; i b ? a : b; /in main m = max(i, j);a = i, b = j;m = a b ? a : b;C+語言概述字符串變量 #include 例1: string str; str = “Hello World”; cout str; cout =, , str3) cout str1; else cout str3; /定義了4個字符串變量/完成類似strcpy操作/完成類似strcat操作/完成類似strcmp操作/輸出的應該是str1C+語言概述有默認參數(shù)的函數(shù)例: float CalcRoundSpace(float _radius, float pi) return pi * _radius * _radius; CalcRoundSpace(3.2, 3.14); float CalcRoundSpace(float _radius, float pi = 3
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二年級上冊數(shù)學教案-練習七-北師大版
- 六年級上冊數(shù)學教案-3.1 倒-數(shù) |西師大版
- 六年級下冊數(shù)學教案-4.1扇形統(tǒng)計圖的認識 ︳西師大版
- 三年級上冊數(shù)學教案-解決問題第一課時|蘇教版
- 六年級上冊數(shù)學教案 -2.1 分數(shù)混合運算|北師大版
- 融資擔保培訓協(xié)議書(2篇)
- 北師大版數(shù)學三年級上冊單元測試卷-第三單元-加與減(含答案)
- 2024年血壓調(diào)節(jié)用品項目資金籌措計劃書代可行性研究報告
- 2025年度兩人共同投資可再生能源項目的股份合作合同
- 2025年度合伙人退出與合作伙伴關(guān)系維護協(xié)議
- 生涯規(guī)劃與就業(yè)創(chuàng)業(yè)全套課件電子教案板
- 湘少版六年級英語下冊《全冊課件》
- 2024-2030年中國護眼臺燈行業(yè)市場發(fā)展趨勢與前景展望戰(zhàn)略分析報告
- 《土壤肥料學通論》課程教學大綱
- 第十四屆全國交通運輸行業(yè)職業(yè)技能競賽(公路收費及監(jiān)控員)賽項題庫-下(多選題-共3部分-2)
- 集合功能的測定(雙眼視檢查)
- 2024年農(nóng)村自建房裝修合同
- 2024年《高等教育心理學》考前輔導必背習題庫(300題)
- 2024年江蘇農(nóng)牧科技職業(yè)學院單招職業(yè)適應性測試題庫完美版
- 2024年廣西職業(yè)院校技能大賽中職組《智慧物流作業(yè)》模塊MC競賽樣題
- 人事專員簡歷模板
評論
0/150
提交評論