程序設(shè)計(jì)教案06scope局部作用域_第1頁
程序設(shè)計(jì)教案06scope局部作用域_第2頁
程序設(shè)計(jì)教案06scope局部作用域_第3頁
程序設(shè)計(jì)教案06scope局部作用域_第4頁
程序設(shè)計(jì)教案06scope局部作用域_第5頁
已閱讀5頁,還剩47頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

REliable,REliable, ligent&ScalableEpisode部分來自于《C++Primer》REliable, ligent&Scalable“Using”2

REliable, ligent&Scalable 部分(C++標(biāo)準(zhǔn)有782頁 3

REliable, ligent&Scalable但是這里描述的C++C、Java和C#4REliable, ligent&Scalable inta=constdoublecd=double

//anintvariablenamed‘a(chǎn)’is//adouble-precisionfloating-point//afunctiontakingadoubleargument//returningadouble//avectorvariableofTokens5REliable, ligent&Scalable 6REliable, ligent&Scalable inta=intb;vector<double>v;

//anintwiththedefaultvalue//anemptyvectorofdoublesqrt(double){…};//i.e.afunctionwithastructPoint{intx;inty;structPoint;

//functionbody//classmembersspecifiedexternint //externmeans“not//“extern”isarchaic;wewillhardlyuse7

REliable, ligent&Scalableintint

////error:doubledoublesqrt(doubled){…}doublesqrt(doubled){…

////error:doubleinta=7;externinta;double

//definition(alsoa////doublesqrt(doubled){… //definition(alsoa8

REliable, ligent&Scalable9

REliable, ligent&Scalable :

REliable, ligent&Scalable

REliable, ligent&Scalableint //nodoubled= //initializerusingthe=veclor<int>vi(10);//initializerusingthe()constinlx=constinlconstint

//initializerusingthe=//initializerusingthe()//efror:no

REliable, ligent&Scalable#include

REliable, ligent&Scalable////declarations:intget();void…#include#include…#includeintget(){/*…*/voidset(inti){/*…*/… 在兩個(gè).cpp文件中使用相同的

REliable, ligent&Scalableintintget(){/*…*/voidset(inti){/*…*/…#include…inti=get();…

#include…#include…在兩個(gè).cpp文件中使用相同的 #ifndef<標(biāo)識(shí)>#define標(biāo)識(shí)>

REliable, ligent&Scalable

REliable, ligent&Scalable(在之間 之后(“無法向前看can‘tlookahead”規(guī)則:

REliable, ligent&ScalableconstintnotFound=-intbinSearch(constvector<int>&vec,intval){intlow=0;inthigh=vec.size()-

REliable, ligent&Scalablewhile(low<=highintmid=(low+high)/if(val==vec[mid])returnmid;if(val<vec[mid])high=mid-1;elselow=mid+

}return}

REliable, ligent&Scalable

REliable, ligent&Scalable首先查找使用該名字的域,如果找到一個(gè),則該名字被解續(xù)下去,直到找到一個(gè)或已經(jīng)查找完整個(gè)全局域。如果查找完整個(gè)全局域還沒有找到該名字的,則這個(gè)名字

REliable, ligent&Scalable"they","left","the","school"};ints1 }int{}intintbinSearch(constvector<int>&vec,intval){intlow=0;while(low<=high){

REliable, ligent&Scalable}for(intindex=0;index<vecSize;++index{

REliable, ligent&Scalableif(vec[index]==someValue)}ifindexvecSizeif(int*pi=getValue(){

REliable, ligent&Scalablepi0;//這里可以使用*piintresult=calc(*pi);//}{pi==}voidfooBar(int*ia,intsz{

REliable, ligent&Scalablefor(inti=0;i<sz;++i)...//for(inti=0;i<sz++iokifor(inti=0;i<sz++iok}

REliable, ligent&Scalable void關(guān)鍵字extern為 externintexternintx

REliable, ligent&Scalable在C++中通過類型安全機(jī)制,可以把函數(shù)參數(shù)的類型和數(shù)目編碼在函數(shù)名中。類型安全可用來幫助捕捉不同文件中函數(shù)不匹配的intaddToken(unsignedchartok){/*...*/lex.C

REliable, ligent&Scalable由于類型安全,在lex.C中的addToken()將會(huì)被標(biāo)記

REliable, ligent&Scalable頭文件為所有extern對(duì)象

REliable, ligent&Scalable//constchar*msg=“ //ThisfileiscreatedonApril1stbyTomexternintexternintconstfloatvoid

REliable, ligent&Scalableinlinevoidclassenumclass te<classT>class

REliable, ligent&Scalable

REliable, ligent&Scalable 自動(dòng)對(duì)象需要被顯式初始化 初始化的變量的值可能是任意 自動(dòng)對(duì)象的地址不應(yīng)該 Matrix*trouble(Matrix*pm){Matrixres;…

REliable, ligent&Scalable}int{Matrix//Matrix*mainResulttrouble&m1////}

REliable, ligent&Scalablefor(registerintix=0;ix<sz;++ix//for(registerint*p=array;p<arraySize;++p//boolfind(registerint*pm,intval)while(*pmif(*pm++==val)returntrue;returnfalse;

REliable, ligent&Scalable}

REliable, ligent&Scalable #includeint (intv1,intv2{

REliable, ligent&Scalablestaticintdepth=cout<<"depth#"<<depth++<<endl;if(v2==0){111230}return (v2,v1%v2}v115,v2=

REliable, ligent&ScalableclassGlob{/*…*/};classWidget{/*…*/};

//inJack?sheaderfile//alsoinclassBlob{/*…*/};classWidget{/*…*/};

//inJill?sheaderfile//alsoin#include"jill.h";voidmy_func(Widget{

//thisisinyour//sois//oops!–error:multipledefinitionsof//}

REliable, ligent&ScalablenamespaceJackClassGlob{/*…*/};classWidget{/*…*/};

//inJack?sheader}#include"jill.h";

//thisisinyour//soisvoidmy_func(Jack::Widgetp)//OK,Jack?sWidgetclasswill //clashwithadifferent//}

REliable, ligent&Scalable::語法用來指定你使用的是哪個(gè)名字空間,以及你

REliable, ligent&Scalable 類變量(帶有初始化函數(shù)(帶有定義 namespacecplusplus_primer{classmatrix{/*...*/};constdoublepi=3.1416;matrixoperator+(constmatrix&m1,constmatrix&m2voidinverse(matrix&

REliable, ligent&Scalable}namespacecplusplus_primer{voidinverse(matrix&m){/*...*/matrixoperator+(constmatrix&m1,constmatrix&m2{/*...*/}classmatrix{/*...*/};constdoublepi=3.1416;voidinverse(matrix&);

REliable, ligent&Scalable}//----primer.C----}//----user.C----{}

REliable, ligent&Scalablenamespacecplusplus_primer{namespaceMatrixLib{classmatrix{/*...*/…}namespaceAnimalLib}}

REliable, ligent&Scalable //-----SortLib.C-----namespace{voidswap(double*d1,double*d2){/*...*/}//四個(gè)排序函數(shù)的定義,其中使用了swap函數(shù)voidquickSort(double*d1,double*d2**voidbubbleSortdouble*d1double*d2**voidmergeSortdouble*d1double*d2**voidheapSort(double*d1,double*d2**

REliable, ligent&Scalable std::cout<<"Pleaseenterstuff…\n";可以寫一條“using usingstd::cout;//whenIsaycout,Imeanstd::cout”cout<<"Pleaseenterstuff…\n";//ok:std::coutcin>>x;//error:cinnotinscopeusingnamespacestd;//“makeallnamesfromnamespacestdcout<<"Pleaseenterstuff…\n";//ok:cin>>x;//ok:

REliable, ligent&Scalablenamespa

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論