Boolan-C++面向?qū)ο蟾呒?jí)編程 學(xué)習(xí)筆記(二)

感冒了,先這樣交著吧,后面再改


三大函數(shù):拷貝構(gòu)造,拷貝復(fù)制,析構(gòu)

有指針的類設(shè)計(jì):

s1 = s2

帶指針的類進(jìn)行復(fù)制時(shí),需要清空原有分配的內(nèi)存,再設(shè)置新的內(nèi)容。

刪除空間,重新分配空間,重新賦值:

Stack棧,是存在與某種作用于(Scope)的一塊內(nèi)存空間(memoryspace)。例如當(dāng)調(diào)用函數(shù)時(shí),函數(shù)會(huì)形成一個(gè)Stack用來存放所接受的參數(shù),以及返回地址。

這樣寫,Complex的析構(gòu)函數(shù)會(huì)自動(dòng)被調(diào)用起來。

c2是靜態(tài)對(duì)象,其聲明在作用域結(jié)束后仍然存在,直到整個(gè)程序結(jié)束。

c3是全局對(duì)象,生命在整個(gè)程序結(jié)束后才結(jié)束,也可以視為一種static object,其作用域是整個(gè)程序。

Heap堆,是由操作系統(tǒng)提供的一塊global內(nèi)存空間,程序可動(dòng)態(tài)分配(dynamicallocated),從中獲得若干區(qū)塊(blocks)。


調(diào)試模式,new complex時(shí)的內(nèi)存分配,與,發(fā)布模式時(shí)的內(nèi)存分配。

分配的空間都是16的倍數(shù),不足補(bǔ)充pad。

cookie指的是空間大小,最低位為1表示給出去,0表示收回來。


new []與delete[]要成對(duì)使用:



static靜態(tài):

對(duì)于類內(nèi)部構(gòu)成來說,可以進(jìn)行如下分類:


聲明3個(gè)complex c1, c2, c3,此時(shí):


非靜態(tài)成員非靜態(tài)成員變量是獨(dú)立的三份數(shù)據(jù),占用三份獨(dú)立的內(nèi)存空間。

static 成員三個(gè)對(duì)象只有一個(gè)static成員,內(nèi)存中只有一份。

舉例:100萬個(gè)銀行用于,某些屬性不同,但是如利率的信息相同,利率就可以定義為static。

非靜態(tài)函數(shù)三個(gè)對(duì)象的成員函數(shù)只有一份, 函數(shù)被調(diào)用時(shí)通過隱藏的this指針區(qū)分對(duì)象。

static 函數(shù)static函數(shù)沒有this指針,無法得到this。所以不能訪問非靜態(tài)成員。通常用來存取static成員。



Singleton設(shè)計(jì)模式:

只有A自己能創(chuàng)建自己,保證A只有一份。只有在使用時(shí)才創(chuàng)建A。


強(qiáng)悍的cout:

cout就是一種ostream

?

類模板(模板類):

告訴編譯器,目前T只是個(gè)符號(hào)。這樣就行成了類模板或模板類。

在創(chuàng)建對(duì)象時(shí)告訴編譯器T具體是什么,然后查找替換。


函數(shù)模板(functiontemplate):

類的模板使用時(shí)需要明確指出具體的類型,函數(shù)模板無需這樣。因?yàn)榫幾g器會(huì)做參數(shù)推導(dǎo)(argument deduction)處理。

標(biāo)準(zhǔn)庫中常用函數(shù)模板。


命名空間namespace:

直接使用:“using namespace std;”,將std的包裝全部打開,這樣cin、cout等等全部內(nèi)容可以直接使用。

單個(gè)打開:“using std::out;”,只打開cout,使用cin還需要“std::cin”。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容