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

正文內(nèi)容

《堆與復(fù)制構(gòu)造函數(shù)》ppt課件-全文預(yù)覽

  

【正文】 using namespace std。 } 【 例 】 (續(xù) 3) 該程序運(yùn)行后的輸出結(jié)果如下: Normal constructor called. Copy constructor called. Copy constructor called. Hello! Hello! Freeing s Freeing s Freeing s 復(fù)制構(gòu)造函數(shù)不會(huì)影響賦值運(yùn)算 記住,復(fù)制構(gòu)造函數(shù)只有在初始化對(duì)象時(shí)才被調(diào)用。 //調(diào)用復(fù)制構(gòu)造函數(shù) my_string ob2=ob1。 strcpy(s, )。 coutNormal constructor called.\n。 cout Freeing s\n。 public: my_string(char *str)。 return 0。 } 【 例 】 (續(xù) 2) void display(my_string ob) { ( )。 } my_string::my_string(const my_string amp。 } }。obj)。 【 例 】 自定義的復(fù)制構(gòu)造函數(shù) include iostream include cstring using namespace std。 //對(duì)象 y被顯式地用來(lái)初始化對(duì)象 x (3) 當(dāng)創(chuàng)建一個(gè)臨時(shí)對(duì)象時(shí) (最常見(jiàn)的情況是作為函數(shù)的返回值 )。 my_string y。 //這條語(yǔ)句輸出的是垃圾數(shù)據(jù) return 0。 【 例 】 (續(xù)) void display(my_string ob) { ( )。 } ~my_string( ) { if(s) delete [ ] s。 【 例 】 class my_string { char *s。 //對(duì)象 s以傳值方式傳送給臨時(shí)對(duì)象 ob ()。 } }。ob) //自定義復(fù)制構(gòu)造函數(shù) { side = 。 【 例 】 的另一種版本 class Square { int side。 自定義復(fù)制構(gòu)造函數(shù)的例子 Square(const Square amp。 ? 默認(rèn)的復(fù)制構(gòu)造函數(shù)將以 按位復(fù)制 的形式創(chuàng)建一個(gè)對(duì)象的副本,即創(chuàng)建一個(gè)與原對(duì)象一模一樣的副本。 ? 也就是說(shuō), 一個(gè)對(duì)象被銷(xiāo)毀了 兩個(gè)問(wèn)題 ? 第一個(gè)問(wèn)題:在創(chuàng)建對(duì)象的副本時(shí)是否調(diào)用了構(gòu)造函數(shù)? ? 第二個(gè)問(wèn)題:當(dāng)銷(xiāo)毀對(duì)象的副本時(shí)是否調(diào)用了析構(gòu)函數(shù)? 第一個(gè)問(wèn)題的答案 ? 首先,在調(diào)用函數(shù)的時(shí)候,程序創(chuàng)建了一個(gè)對(duì)象的副本作為形式參數(shù), ? 此時(shí)普通的構(gòu)造函數(shù) (normal constructor)并沒(méi)有被調(diào)用, ? 而是 復(fù)制構(gòu)造函數(shù) ( copy constructor)被調(diào)用。 return 0。 void f(Square ob) //對(duì)象作為函數(shù)參數(shù) { ()。 coutConstructiong\n。 delete ps。 } void display() { cout side \n。 class Square { int side。 需要 new和 delete的原因 ? 需要 new和 delete的原因 ? 在堆上創(chuàng)建對(duì)象 需要 new和 delete的原因 ? 對(duì)自定義的類(lèi)類(lèi)型,使用函數(shù) malloc( )給對(duì)象分配動(dòng)態(tài)空間時(shí)不能自動(dòng)調(diào)用構(gòu)造函數(shù); ? 使用函數(shù) free( )釋放對(duì)象所占用的動(dòng)態(tài)空間時(shí)也不能調(diào)用析構(gòu)函數(shù)。 ? 這種動(dòng)態(tài)分配方式不但能夠提高內(nèi)存的利用率,而且對(duì)于鏈表和二叉樹(shù)等動(dòng)態(tài)數(shù)據(jù)結(jié)構(gòu)特別有用。 ? 從棧中分配內(nèi)存效率特別高,對(duì)棧的充分利用是 C/C++編譯程序能產(chǎn)生優(yōu)質(zhì)高效代碼的原因之一。 ? 這種動(dòng)態(tài)內(nèi)存分配方式能夠顯著地提高內(nèi)存的利用率。 ? 在程序中需要空間存放數(shù)據(jù)時(shí),就申請(qǐng)動(dòng)態(tài)內(nèi)存單元,使用完畢后釋放動(dòng)態(tài)內(nèi)存單元。 在固定存儲(chǔ)區(qū)域與堆棧之間的自由區(qū)域稱(chēng)為堆 棧 Stack ? 棧的內(nèi)存管理嚴(yán)格遵循后進(jìn)先出( LIFO: Last in, First Out)的順序, ? 即釋放棧中對(duì)象所占內(nèi)存時(shí)的順序剛好與給這些對(duì)象
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1