一周學(xué)習(xí)總結(jié)_(′?`」 ∠)_
一脖律、對對象和類的理解
在C++中,類是一種“規(guī)范”,它描述了這種新型數(shù)據(jù)格式,對象是根據(jù)這種規(guī)范構(gòu)造的特定數(shù)據(jù)結(jié)構(gòu)。
“新型數(shù)據(jù)格式腕侄,特定數(shù)據(jù)結(jié)構(gòu)”小泉,很容易聯(lián)想到C語言中的結(jié)構(gòu)體(之后才知道結(jié)構(gòu)體是特殊的類),更容易理解冕杠。
在我的理解微姊,“類”就像一張圖紙,一個(gè)模板分预,包含著許多基本屬性兢交。“對象”是類的實(shí)例笼痹,也就是對應(yīng)的實(shí)物配喳。
舉例來說,定義描述人類一個(gè)類凳干,包含著許多數(shù)據(jù)比如:名字界逛,身高,體重纺座,膚色,發(fā)色等等溉潭。
而它的對象净响,一個(gè)叫小明,身高180喳瓣,體重70馋贤,膚色白色,發(fā)色為黑的一個(gè)人畏陕。
就像網(wǎng)游游戲里面“捏人”過程 一樣配乓,你可以通過修改參數(shù)更改他的名字,身高,體重犹芹,膚色崎页,發(fā)色。
最后得到的那個(gè)角色腰埂,就是一個(gè)對象飒焦。
二、訪問控制的理解
關(guān)鍵字:public(公共的)屿笼,private(私有的)牺荠,protected(受保護(hù)的)。
public對外是可見的驴一,就像是廣場休雌,大家都可以去訪問里面的成員。
private的數(shù)據(jù)成員和成員函數(shù)肝断,就像藏家你家里杈曲,誰都不可以私自訪,相當(dāng)于隱藏孝情。
protect感覺更像是保險(xiǎn)箱鱼蝉,只有擁有鑰匙(子類)才可以訪問。
在C語言中我們學(xué)過的結(jié)構(gòu)體箫荡,也是一種特殊的類魁亦。只不過結(jié)構(gòu)體定義用的是struct,而類用的是class。
除此之外羔挡,還有一點(diǎn)不同的是洁奈,在struct下的所有成員,都被默認(rèn)為是public的绞灼,而class則是被默認(rèn)為 private的利术。
三、this指針的理解
this指針就是一個(gè)對象的指針低矮,是編譯器自動(dòng)設(shè)置的所以叫隱含指針印叁??每一次this指針指向當(dāng)前的對象军掂,對各成員的訪問均通過this進(jìn)行轮蜕,然后通過運(yùn)算符->訪問該對象的成員。運(yùn)用非常方便蝗锥,就相當(dāng)于this=&當(dāng)前對象跃洛。
四、構(gòu)造函數(shù)和析構(gòu)函數(shù)的理解
構(gòu)造函數(shù):函數(shù)名和類名相同的函數(shù)稱為構(gòu)造函數(shù)终议。它的作用是在建立一個(gè)對象時(shí)汇竭,作某些初始化的工作(例如對數(shù)據(jù)賦予初值)葱蝗。C++允許同名函數(shù),也就允許在一個(gè)類中有多個(gè)構(gòu)造函數(shù)细燎。如果一個(gè)都沒有两曼,編譯器將為該類產(chǎn)生一個(gè)默認(rèn)的構(gòu)造函數(shù)。它不能指定返回類型找颓,甚至void 也不行合愈。
析構(gòu)函數(shù):當(dāng)一個(gè)類的對象離開作用域時(shí),析構(gòu)函數(shù)將被調(diào)用(系統(tǒng)自動(dòng)調(diào)用)击狮。析構(gòu)函數(shù)的名字和類名一樣佛析,不過要在前面加上 ~ 。對一個(gè)類來說彪蓬,只能允許一個(gè)析構(gòu)函數(shù)寸莫,析構(gòu)函數(shù)不能有參數(shù),并且也沒有返回值档冬。析構(gòu)函數(shù)的作用是完成一個(gè)清理工作膘茎,如釋放從堆中分配的內(nèi)存。一個(gè)類中可以有多個(gè)構(gòu)造函數(shù)酷誓,但析構(gòu)函數(shù)只能有一個(gè)披坏。對象被析構(gòu)的順序,與其建立時(shí)的順序相反盐数,即后構(gòu)造的對象先析構(gòu)棒拂。
構(gòu)造函數(shù)的作用在規(guī)定中寫道析構(gòu)函數(shù)的作用就是釋放掉內(nèi)存,而構(gòu)造函數(shù)就是給創(chuàng)建對象; 開辟內(nèi)存空間;初始化玫氢。
讓我不禁想起了被malloc和free函數(shù)所支配的恐懼帚屉。
同樣是malloc 申請內(nèi)存,free把malloc分配的空間給釋放了漾峡。
功能很相似攻旦,讓我更容易理解了許多。
五生逸、繼承的理解
繼承完全通過一樣的特性可以省下一堆不必要的代碼牢屋,用“:”連接。
繼承方式有public槽袄,private伟阔,protected,分為基類(爸爸)和派生類(兒子)掰伸,子類繼承了父類的特性就不用再寫了。
public繼承:訪問權(quán)限都不變怀估。
private繼承:都變成private狮鸭。
protected繼承:兒子可以訪問合搅,爸爸的public成員在兒子里的變?yōu)閜rotected,其他保持不變歧蕉。
總結(jié):對c++部分有了一點(diǎn)點(diǎn)的了解灾部,下周應(yīng)結(jié)合書本補(bǔ)全一下。
2017.1.23
孫琳