Boolan C++微專業(yè)課程第二周筆記

8.7

如果一個類帶有指針揭措,那么類的拷貝構(gòu)造和拷貝賦值一定要自己寫,不能用編譯器的默認版本刻蚯,若使用默認版本進行拷貝绊含,則拷貝后的指針指向被拷貝指針指向的空間,而不再指向自己原來指向的空間炊汹。

字符串類的數(shù)據(jù)成員設(shè)計為字符指針躬充,在需要內(nèi)存的時候才創(chuàng)建一個空間來放字符本身,可以取得動態(tài)分配字符串大小的效果讨便。

拷貝構(gòu)造充甚,構(gòu)造函數(shù)的參數(shù)是同一類型的東西,舉例:

String(const String& str);

拷貝賦值舉例:

String& operator = (const String& str);

在拷貝賦值時霸褒,要先檢測是否為自我賦值伴找,效率高,而且不檢測的話傲霸,后面的代碼清除左邊對象指針?biāo)缚臻g時疆瑰,會把右邊對象指針?biāo)缚臻g也清除了(兩者實際指向同一空間),后續(xù)代碼會產(chǎn)生不確定的行為:

if( this == &str)

return *this;

當(dāng)類對象死亡的時候會調(diào)用析構(gòu)函數(shù)昙啄,將動態(tài)分配的內(nèi)存空間釋放穆役。析構(gòu)函數(shù)舉例:

Inline

String :: ~String()

{

delete [] m_data;

}

9.8

cout可以直接接字符指針,打印出指針?biāo)缸址?/p>

Stack(棧)梳凛,是存在于某作用域(局部)的一塊內(nèi)存空間耿币。例如調(diào)用函數(shù)時,函數(shù)本身即會形成一個stack來放置它所接收的參數(shù)韧拒,以及返回地址和局部對象淹接。在函數(shù)本體內(nèi)聲明的任何變量所使用的內(nèi)存塊都取自棧。棧對象會在作用域結(jié)束之際被析構(gòu)函數(shù)自動清理叛溢。

Heap(堆)塑悼,是指由操作系統(tǒng)提供的一塊全局內(nèi)存空間,程序可動態(tài)分配若干區(qū)塊(new)楷掉。new出來的動態(tài)空間需要手動delete掉厢蒜。array new要搭配array delete,即delete[]烹植,可調(diào)用多次析構(gòu)函數(shù)斑鸦。

靜態(tài)對象的生命在作用域結(jié)束之后仍然存在,直到整個程序結(jié)束草雕,舉例:

{

static?Complex c2(1,2);

}

在全局作用域中聲明的對象也是全局對象巷屿,其生命在整個程序結(jié)束之后才結(jié)束。

{

Complex* p = new Complex墩虹;

...

delete p;

}

P所指的便是heap object嘱巾,其生命在它被delete之際結(jié)束憨琳。

{

Complex* p = new Complex;

}

以上會出現(xiàn)內(nèi)存泄露(memory leak)浓冒,因為當(dāng)作用域結(jié)束栽渴,p所指的heap object仍然存在,但指針p的生命卻結(jié)束了稳懒,作用域之外再也看不到p(也就沒機會delete p)

VC下分配的動態(tài)內(nèi)存塊大小一定是16的倍數(shù)(字節(jié)數(shù))闲擦。

在類成員前面加關(guān)鍵字static,則成為靜態(tài)成員场梆。靜態(tài)數(shù)據(jù)成員只有一份墅冷,為同一類的所有對象共有。靜態(tài)成員函數(shù)沒有this指針或油,只能存取靜態(tài)數(shù)據(jù)寞忿。

靜態(tài)數(shù)據(jù)要在類之外定義,舉例:

class Account

{

public:

static double m_rate; //聲明

static void set_rate (const double& x) {m_rate=x}顶岸;

}

double Account::m_rate=8.0 //定義

調(diào)用靜態(tài)函數(shù)的方式:

[if !supportLists](1)[endif]通過對象調(diào)用腔彰;

[if !supportLists](2)[endif]通過類名調(diào)用,如:Account::set_rate(5.0)

使用命名空間可以避免自己寫的東西和別人寫的東西重名引起的沖突辖佣。

namespace std //名字自己取

{

...

}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末霹抛,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子卷谈,更是在濱河造成了極大的恐慌杯拐,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,744評論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件世蔗,死亡現(xiàn)場離奇詭異端逼,居然都是意外死亡,警方通過查閱死者的電腦和手機污淋,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,505評論 3 392
  • 文/潘曉璐 我一進店門顶滩,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人寸爆,你說我怎么就攤上這事诲祸。” “怎么了而昨?”我有些...
    開封第一講書人閱讀 163,105評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長找田。 經(jīng)常有香客問我歌憨,道長,這世上最難降的妖魔是什么墩衙? 我笑而不...
    開封第一講書人閱讀 58,242評論 1 292
  • 正文 為了忘掉前任务嫡,我火速辦了婚禮甲抖,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘心铃。我一直安慰自己准谚,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,269評論 6 389
  • 文/花漫 我一把揭開白布去扣。 她就那樣靜靜地躺著柱衔,像睡著了一般。 火紅的嫁衣襯著肌膚如雪愉棱。 梳的紋絲不亂的頭發(fā)上唆铐,一...
    開封第一講書人閱讀 51,215評論 1 299
  • 那天,我揣著相機與錄音奔滑,去河邊找鬼艾岂。 笑死,一個胖子當(dāng)著我的面吹牛朋其,可吹牛的內(nèi)容都是我干的王浴。 我是一名探鬼主播,決...
    沈念sama閱讀 40,096評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼梅猿,長吁一口氣:“原來是場噩夢啊……” “哼氓辣!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起粒没,我...
    開封第一講書人閱讀 38,939評論 0 274
  • 序言:老撾萬榮一對情侶失蹤筛婉,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后癞松,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體爽撒,經(jīng)...
    沈念sama閱讀 45,354評論 1 311
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,573評論 2 333
  • 正文 我和宋清朗相戀三年响蓉,在試婚紗的時候發(fā)現(xiàn)自己被綠了硕勿。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,745評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡枫甲,死狀恐怖源武,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情想幻,我是刑警寧澤粱栖,帶...
    沈念sama閱讀 35,448評論 5 344
  • 正文 年R本政府宣布,位于F島的核電站脏毯,受9級特大地震影響闹究,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜食店,卻給世界環(huán)境...
    茶點故事閱讀 41,048評論 3 327
  • 文/蒙蒙 一渣淤、第九天 我趴在偏房一處隱蔽的房頂上張望赏寇。 院中可真熱鬧,春花似錦价认、人聲如沸嗅定。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,683評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽渠退。三九已至,卻和暖如春捶箱,著一層夾襖步出監(jiān)牢的瞬間智什,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,838評論 1 269
  • 我被黑心中介騙來泰國打工丁屎, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留荠锭,地道東北人。 一個月前我還...
    沈念sama閱讀 47,776評論 2 369
  • 正文 我出身青樓晨川,卻偏偏與公主長得像证九,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子共虑,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,652評論 2 354

推薦閱讀更多精彩內(nèi)容