資源描述:
《錕節(jié)撅拷錕斤拷群錕斤拷錕斤拷錕餃猴拷錕斤拷錕斤拷蕕錕斤拷錕街ppt課件.ppt》由會員上傳分享,免費在線閱讀,更多相關內(nèi)容在教育資源-天天文庫。
1、第九章群體類和群體數(shù)據(jù)的組織C++語言程序設計引言在C++中,有基本數(shù)據(jù)類型和自定義數(shù)據(jù)類型基本類型是C++編譯系統(tǒng)預定義的自定義類型是由多個基本類型或自定義類型的元素組成的,稱為群體數(shù)據(jù)對于群體數(shù)據(jù),僅有系統(tǒng)預定義的操作是不夠的,在很多情況下,需要設計與某些具體問題相關的特殊操作,并按面向?qū)ο蟮姆椒▽?shù)據(jù)與操作封裝起來,這就是群體類引言群體分類兩類:線性群體:線性群體中的元素按位置排列有序,數(shù)組是典型例子非線性群體:非線性群體不用位置順序來標識元素,如企業(yè)中職員的上下級關系,家族譜信息關于群體數(shù)據(jù)的組織是屬于數(shù)據(jù)結(jié)構(gòu)的范疇。在此只介紹兩類常用算法:排序和查找方法排序:稱為分類
2、或整理,是將一個無序序調(diào)整為有序的過程。在排序過程中需要完成兩種基本操作:1、比較兩個數(shù)的大?。?、調(diào)整元素在序列中的位置。查找:是在一個序列中按照某種方式找出需要的特定數(shù)據(jù)元素的過程。查字典就是一個典型例子本章主要內(nèi)容模板群體類群體數(shù)據(jù)的組織第一部分—模板C++最重要的特性之一就是代碼重用,為實現(xiàn)代碼重用,代碼必須具有通用性。通用代碼需要不受數(shù)據(jù)類型的影響,并且可以自動適應數(shù)據(jù)類型的變化。這種程序設計類型稱為參數(shù)化程序設計。模板是C++支持參數(shù)化程序設計的工具,通過它可以實現(xiàn)參數(shù)的多態(tài)性參數(shù)的多態(tài)性:是指將程序所處理的對象的類型參數(shù)化,使得一段程序可以用于處理多種不同類型的對
3、象函數(shù)模板類模板函數(shù)模板函數(shù)重載通常是對于不同的數(shù)據(jù)類型完成類似的操作。很多情況下,一個算法是可以處理多種數(shù)據(jù)類型的。但是用函數(shù)實現(xiàn)算法時,即使設計為重載函數(shù)也只是使用相同的函數(shù)名,函數(shù)體仍然要分別定義intabs(intx){returnx<0?-x:x;}doubleabs(doublex){returnx<0?-x:x;}上述函數(shù)只是參數(shù)類型不同,功能完全一樣。類似的情況,如能寫一段通用的代碼,則可進一步提高代碼復用質(zhì)量,提高軟件開發(fā)效率,這也是使用函數(shù)模板的原因。函數(shù)模板函數(shù)模板可以用來創(chuàng)建一個通用功能的函數(shù),以支持多種不同形參,進一步簡化重載函數(shù)的函數(shù)體設計。聲明方法
4、:template//表示類型參數(shù)表類型名函數(shù)名(參數(shù)表){函數(shù)體的定義}//函數(shù)模板中函數(shù)體的定義與定義其它函數(shù)類似函數(shù)模板求絕對值函數(shù)的模板#includeusingnamespacestd;templateTabs(Tx){returnx<0?-x:x;}intmain(){intn=-5;doubled=-5.5;cout<5、,對于調(diào)用表達式abs(n),由于實參n為int型,所以推導出模板中類型參數(shù)T為int。當類型參數(shù)的含義確定后,編譯器將以函數(shù)模板為樣板,生成一個函數(shù):intabs(intx){returnx<0?-x:x;}函數(shù)模板函數(shù)模板的實例#includeusingnamespacestd;templatevoidoutputArray(constT*P_array,constintcount){for(inti=0;i6、ount=8,bCout=8,cCount=20;intaArray[aCount]={1,2,3,4,5,6,7,8};doublebArray[bCount]={1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8};charcArray[cCount]="welcometoseeyou";cout<<"aArraycontains:"<7、endl;outputArray(cArray,cCount);}函數(shù)模板的實例講解函數(shù)模板中聲明了類型參數(shù)T,表示一種抽象的類型。當編譯器檢測到程序中調(diào)用函數(shù)模板outputArray時,便用outputArray的第一個實參的類型替換掉整個模板定義中的T,并建立用來輸出指定類型數(shù)組的一個完整的函數(shù),再編譯此新建的函數(shù)模板函數(shù)與重載是密切相關的。從函數(shù)模板產(chǎn)生的相關函數(shù)都是同名的,編譯器用重載的解決方法調(diào)用相應的函數(shù)類模板的作用使用類模板使用戶可以為類聲明一種模式,使得類中的某些數(shù)據(jù)成員、