freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

c類和對象ppt課件-資料下載頁

2024-10-19 04:35本頁面
  

【正文】 void main() { Triangle t。 Rectangle r。 (2,10)。 showarea(t)。 (,10)。 showarea(r)。 } 接口與復(fù)用 ? 程序模塊(構(gòu)件) ? 軟件的組成部件 ? 軟件工程觀點(diǎn):通過組裝構(gòu)件來開發(fā)軟件 ? 對象類 ? 作為程序模塊,程序模塊之間的交互手段:模塊接口 ? 模塊接口 ? 一組函數(shù)原型(方法) ? 描述了如何訪問該模塊 ? 編程語言提供接口描述方法 ? C++ 提供抽象類和純虛函數(shù) ? Java 提供接口 interface 用 C++ 語言描述接口 ? 例 :整數(shù)容器接口 ? 描述用于維護(hù)一組整數(shù)的程序模塊 class IntContainer { public: virtual int GetNumber( void ) = 0。 // 獲得整數(shù)個(gè)數(shù) virtual int GetAt( int idx ) = 0。 // 獲得第 idx個(gè)元素 virtual void Add( int val ) = 0。 // 添加元素 }。 ? 純虛函數(shù):自己不定義,要求派生類必須定義 ? 抽象類:僅作為基類,不能直接實(shí)例化對象 ? 接口 ? 無數(shù)據(jù)成員、僅提供純虛函數(shù)的抽象類 實(shí)現(xiàn)同一功能的兩個(gè)模塊 class IntArray : public IntContainer { int *pData, size, used。 public: IntArray( int sz )。 ~IntArray( void )。 int GetNumber( )。 int GetAt( int idx )。 void Add( int val )。 }。 class IntList : public IntContainer { struct Node { int val。 struct Node *next。 } *pHead。 public: IntList( )。 int GetNumber( )。 int GetAt( int idx )。 void Add( int val )。 }。 兩個(gè)類的對比 ? IntArray 實(shí)現(xiàn)動態(tài)數(shù)組 ? pData 指向數(shù)組首元素地址 ? size 數(shù)組大小 ? used 整數(shù)的個(gè)數(shù) ? IntList 實(shí)現(xiàn)整數(shù)鏈表 ? Node 結(jié)點(diǎn)的結(jié)構(gòu) ? pHead 鏈表首元素地址 ? 接口 ? 創(chuàng)建方法不同 ? 使用方法相同 ? 以不同的數(shù)據(jù)結(jié)構(gòu)、不同的算法提供相同的功能 IntArray 的實(shí)現(xiàn) IntArray::IntArray( int sz ) { pData = new int[ size=sz ]。 // 申請空間 used =0。 } IntArray::~IntArray( void ) { delete [ ]pData。 // 釋放空間 } int IntArray::GetNumber( void ) { return used。 // 元素個(gè)數(shù) } int IntArray::GetAt( int idx ) { if( idx = used ) return 1。 // 超界處理 return pData[ idx ]。 } void IntArray::Add( int val ) { if( used == size ) { // 擴(kuò)大數(shù)組的尺寸( +8) int *p = new int[ size + 8 ]。 memcpy( p, pData, sizeof(int)*size )。 delete [ ]pData。 // 釋放原空間 pData = p。 // 新的空間 size += 8。 } pData[ used++ ] = val。 // 添加元素 } IntList 的實(shí)現(xiàn) IntList::IntList( ) { pHead=NULL。 } int IntList::GetNumber( void ) { int n = 0。 for( Node *p=pHead。 p!=NULL。 p=pnext ) n++。 // 元素的計(jì)數(shù) return n。 } int IntList::GetAt( int idx ) { for( Node *p=pHead。 p!=NULL。 p=pnext ) if( idx == 0 ) return pval。 // 找到指定元素 return 1。 } void IntList::Add( int val ) { Node *p = new Node()。 pval = val。 // 構(gòu)造新結(jié)點(diǎn) pnext = NULL。 if( pHead == NULL ) { // 空表? pHead = p。 return。 } for( Node *q=pHead。 qnext!=NULL。 q=qnext )。 qnext = p。 // 加在表尾 } int sum( IntContainer *pSet ) { int s = 0。 for( int i=0。 ipSetGetNumber()。 i++ ) s += pSetGetAt(pSet)。 return s。 } main( ) { IntArray ar(10)。 IntList ls。 ( 10 )。 ( 23 )。 ( 32 )。 ( 10 )。 ( 23 )。 ( 32 )。 int s1 = sum( amp。ar )。 int s2 = sum( amp。ls )。 couts1endls2。 }
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1