




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
面向?qū)ο蟪绦蛟O(shè)計(jì)與
VisualC++
本課程的意義&&未來職業(yè)面向?qū)ο蟪绦蛟O(shè)計(jì)田宜平電話:Email:中國地質(zhì)大學(xué)計(jì)算機(jī)學(xué)院信息所武漢地大坤迪科技有限公司教材:《VisualC++面向?qū)ο蟪绦蛟O(shè)計(jì)》
戴光明李向編著中山大學(xué)出版社2005-11推薦參考教材1.《實(shí)用VisualC++6.0教程》[美]JonBates,TimTompkins著何健輝董方鵬等譯2.《C++面向?qū)ο蟪绦蛟O(shè)計(jì)教程》陳維興林小茶編著3.《C++程序設(shè)計(jì)教程》錢能編著清華大學(xué)出版社考試形式
一、交編程報(bào)告題目不固定(三種類型)
1.布置
2.你感興趣的
3.你的課題中的一個(gè)問題要求:源程序和報(bào)告用Email交二、平時(shí)成績?nèi)⒐P試面向?qū)ο蟪绦蛟O(shè)計(jì)的主要內(nèi)容第一部分C++語言基礎(chǔ)知識(預(yù)備知識)主要介紹C++語言與C語言不同的內(nèi)容第二部分面向?qū)ο蟪绦蛟O(shè)計(jì)(重點(diǎn)內(nèi)容)主要講述面向?qū)ο蟪绦蛟O(shè)計(jì)的基本思想與原理第三部分面向?qū)ο蟪绦蛟O(shè)計(jì)實(shí)例(實(shí)踐操作主要講解MFCWindows編程和數(shù)據(jù)庫編程等實(shí)例第一部分C++語言概述1.1C++語言的起源和特點(diǎn)1.2C++語言與C語言的關(guān)系1.3C++語言展望1.1.1C++語言的起源1、C++語言是從C語言繼承來的,主要表現(xiàn)在語句形式、模塊化程序設(shè)計(jì)2、C語言對大而復(fù)雜的系統(tǒng)是力不從心的3、80年Bell實(shí)驗(yàn)室改進(jìn)ANSIC產(chǎn)生C++語言(ANSL:美國國家標(biāo)準(zhǔn)研究所)1.1.2C++語言的特點(diǎn)1、C++語言是支持面向?qū)ο蟮脑O(shè)計(jì)語言
把具有共同特征和行為的實(shí)體的集合歸納成類,程序是相互聯(lián)系的離散對象的集合2、封裝性:通過類,將數(shù)據(jù)和操作封裝3、繼承性:原有C++代碼方便移植新程序4、多態(tài)性:相似而性質(zhì)不同的操作有相同名稱(如和操作有整數(shù)和與矢量和)1.2C++語言與C語言的關(guān)系1.2.1C++語言與C語言的聯(lián)系C語言的特點(diǎn):1、它是一種結(jié)構(gòu)化程序設(shè)計(jì)語言2、它可以部分代替匯編語言3、它提供了豐富的數(shù)據(jù)類型和運(yùn)算1.2C++語言與C語言的關(guān)系1.2.2C++語言與C的主要區(qū)別1、C++語言引進(jìn)了類的概念,而C語言的結(jié)構(gòu)只是數(shù)據(jù)的集合2、C++語言沿用了C語言的結(jié)構(gòu)3、C++語言新增加的關(guān)鍵字classprivate,protected,publicthisnewdeletefriendoperateinlinevirtual1.2C++語言與C語言的關(guān)系1.2.3C++語言與C的細(xì)小區(qū)別1、C++語言保留了C的注釋/**/增加行注釋//2、const關(guān)鍵字#defineNumber1constNumber1它們功能相同,但后者編譯要進(jìn)行嚴(yán)格的類型檢查。在C++都用const例如:C++:constintNumber=1,n=10;voidmain(){ inta;
constint*p; p=&Number; p=&n; *p=1;//錯(cuò)誤 intn1=3;intconstn2=5;int*constpn=&n1;
pn=&n2;//錯(cuò)誤*pn=6;//正確}常指針
使用const修飾指針時(shí),由于const的位置不同,而含意不同。下面舉兩個(gè)例子,說明它們的區(qū)別。
(1).若聲明指針常量,則指針pn所指向的變量是可以更新的,不可更新的是常量指針pn所指的方向。例:intn1=3;intconstn2=5;int*constpn=&n1;
pn=&n2;//錯(cuò)誤*pn=6;//正確(2).若聲明為指向常量的指針,則指針pn所指向的常量是不可以更新的,但可更新的是指針pn所指的方向。例:intn1=3;intconstn2=5;constint*pn=&n1;
pn=&n2;//正確*pn=6;//錯(cuò)誤1.2.3C++語言與C的細(xì)小區(qū)別3、構(gòu)造變量的說明不必在之前加struct例如:C:structAstructaS;(結(jié)構(gòu))unionAunionaU;(聯(lián)合)enumBoolaB;(枚舉)C++:AstructaS;(結(jié)構(gòu))AunionaU;(聯(lián)合)BoolaB;(枚舉)4、變量的說明可放在程序任何位置例如(forinti=0;i<100;i++)1.2.3C++語言與C的細(xì)小區(qū)別5、域運(yùn)算符:有全局作用域,文件作用域,類作用域,函數(shù)作用域。通過“::”域限定符標(biāo)識。例:inti; main() {inti; i=5;//對局部量i ::i=10;//對全局量i }//“::”域限定符。1.2.3C++語言與C的細(xì)小區(qū)別6、輸入/輸出C++:cout<<"Welcome!";C:printf("Welcome!");C++:cin>>a;C:scanf("%d",&a);C++:cout<<a<<endl;C:printf("%d\n",a);C++:#include<iostream.h>C:#include<stdio.h>1.2.3C++語言與C的細(xì)小區(qū)別7、動態(tài)單元C:#include<alloc.h>float*p;p=(float*)malloc(sizeof(float));freep;q=(int*)calloc(10,sizeof(int));
C++:float*p;p=new(float);deletep;q=newint[10];#include<iostream.h>//例子example1.cppvoidmain(){ inti,m,len; int*p; cout<<"inputnumberofdata:"<<endl; cin>>m; p=newint[m]; if(p==NULL) {cout<<"fail!!!";return;} cout<<"inputdata"<<endl; for(i=0;i<m;i++)cin>>p[i]; len=0;cout<<"inputdata"<<endl; for(i=0;i<m;i++)len+=p[i]*p[i]; cout<<"sqr_sum="<<len<<endl; deletep;}1.2.3C++語言與C的細(xì)小區(qū)別8、引用與引用調(diào)用引用為一個(gè)對象產(chǎn)生第二個(gè)名稱,引用本身不是一個(gè)變量,只是一個(gè)變量的別名。定義如下:類型說明&引用=被引用的變量名;如:類型說明&A=B;我們稱A是B的引用。引用的一些規(guī)則如下:
(1)引用被創(chuàng)建的同時(shí)必須被初始化(指針則可以在任何時(shí)候被初始化)。
(2)不能有NULL引用,引用必須與合法的存儲單元關(guān)聯(lián)(指針則可以是NULL)。
(3)一旦引用被初始化,就不能改變引用的關(guān)系(指針則可以隨時(shí)改變所指的對象)。變量引用:以下示例程序中,k被初始化為i的引用。語句k=j并不能將k修改成為j的引用,只是把k的值改變成為6。由于k是i的引用,所以i的值也變成了6。
inti=5;
intj=6;
int&k=i;
k=j;//k和i的值都變成了6;
按引用傳遞就是封裝了的按指針傳遞!inttest(int&a,int*b);其中a為按引用傳遞,b為按指針傳遞!都可以修改原參數(shù)的值,如 inta1=10; intc=5; int*b1=&c; test(a1,b1);函數(shù)里面就可修改原變量a1和c的值.只不過在test()中用a=20就可以修改a1的值,而需要*b=30修改c的值??!
會發(fā)現(xiàn)“引用傳遞”的性質(zhì)象“指針傳遞”,而書寫方式象“值傳遞”。實(shí)際上“引用”可以做的任何事情“指針”也都能夠做,為什么還要“引用”這東西?
答案是“用適當(dāng)?shù)墓ぞ咦銮∪缙浞值墓ぷ鳌薄?/p>
指針能夠毫無約束地操作內(nèi)存中的如何東西,盡管指針功能強(qiáng)大,但是非常危險(xiǎn)。就象一把刀,它可以用來砍樹、裁紙、修指甲、理發(fā)等等,誰敢這樣用?
如果的確只需要借用一下某個(gè)對象的“別名”,那么就用“引用”,而不要用“指針”,以免發(fā)生意外。1.2.3C++語言與C的細(xì)小區(qū)別9、函數(shù)重載----靜態(tài)多態(tài)性函數(shù)的重載是面向?qū)ο蟪绦蛟O(shè)計(jì)的多態(tài)性的實(shí)現(xiàn),重載使得:在同一個(gè)函數(shù)名下,有該函數(shù)的多個(gè)具體實(shí)現(xiàn);不同的具體實(shí)現(xiàn)有不同參數(shù)列表;在函數(shù)被調(diào)用時(shí),編譯器通過對函數(shù)的實(shí)參和形參進(jìn)行最大限度的匹配,選擇一個(gè)該函數(shù)的具體實(shí)現(xiàn)。
比方說加法,加法可以用于整數(shù)和有理數(shù)等在C++里可以用兩個(gè)函數(shù)來實(shí)現(xiàn)這個(gè)目的。intintadd(intv1,intv2){ returnv1+v2;}floatfloatadd(floatv1,floatv2){ returnv1+v2;}使用的方式是這樣的intia=1,ib=2,iab=0;floatfa=1.0,fb=2.0,fab=0.0;iab=intadd(ia,ib);fab=floatadd(fa,fb); 這樣看起來很不直觀,可讀性不強(qiáng),我們的目的是讓人一眼就可以看出是在做相加運(yùn)算。 兩個(gè)函數(shù)的返回值和參數(shù)并不一樣,這樣就可以區(qū)別開兩個(gè)不同的行為。這個(gè)特性可不可以利用呢?答案是可以,C++貼心的為我們做好了一切。原理很簡單,將函數(shù)的返回值和參數(shù)用一種可逆的編碼方法變成一個(gè)字符串,安插在函數(shù)名后面,編譯器向用戶屏蔽這一切,用戶可以用同一個(gè)名字來使用不同的函數(shù)。就是這樣intadd(in
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 必看!2024年CPMM考試準(zhǔn)備清單及試題及答案
- 住院患者防跌倒課件
- 浙教版 2021-2022學(xué)年度八年級數(shù)學(xué)上冊模擬測試卷
- 2025天津電子信息職業(yè)技術(shù)學(xué)院輔導(dǎo)員考試題庫
- 2025四川師范大學(xué)輔導(dǎo)員考試題庫
- 2025江西航空職業(yè)技術(shù)學(xué)院輔導(dǎo)員考試題庫
- 2025屆青海省海南市重點(diǎn)中學(xué)高考化學(xué)必刷試卷含解析
- 2025屆河北省保定市定州市高考臨考沖刺化學(xué)試卷含解析
- 四年級數(shù)學(xué)(三位數(shù)乘兩位數(shù))計(jì)算題專項(xiàng)練習(xí)及答案
- 四年級數(shù)學(xué)(四則混合運(yùn)算)計(jì)算題專項(xiàng)練習(xí)與答案匯編
- 2024年中國汽車出口與投資國別指南-馬來西亞篇-中國汽車工業(yè)協(xié)會
- 骨科延續(xù)護(hù)理
- 有趣的雪花片
- DB51∕T 2426-2017 公路瀝青路面預(yù)防性養(yǎng)護(hù)技術(shù)規(guī)范
- 稅務(wù)局個(gè)人所得稅業(yè)務(wù)培訓(xùn)
- 視頻監(jiān)控設(shè)備安裝(調(diào)試)投標(biāo)方案
- 2024年福建省高中學(xué)業(yè)水平考試數(shù)學(xué)試卷真題(含答案詳解)
- 復(fù)方阿片類鎮(zhèn)痛藥臨床應(yīng)用中國專家共識
- 小兒過敏性紫癜護(hù)理查房課件
- 爭議解決法律服務(wù)投標(biāo)書
- 浙江省2024年全國中學(xué)生奧林匹克數(shù)學(xué)競賽初賽試題 含解析
評論
0/150
提交評論