(GeekBand)C++面向?qū)ο蟾呒壘幊蹋ㄏ拢┑谝恢芄P記

轉(zhuǎn)換函數(shù)(conversion function)

??????? operator typ_name()const {}

??????? 類似于基本類型強(qiáng)制轉(zhuǎn)換的函數(shù),把當(dāng)前類型對象變?yōu)榱硪粋€類型的對象。該函數(shù)沒有返回類型考婴,函數(shù)中return返回typ類。當(dāng)需要將當(dāng)前對象與typ對象做運算或者轉(zhuǎn)換時會找改運算符重載墩莫,如果找不到就找轉(zhuǎn)換函數(shù)進(jìn)行轉(zhuǎn)換之后在進(jìn)行運算厅贪。可以有多種轉(zhuǎn)換函數(shù)堤结。

調(diào)用轉(zhuǎn)換函數(shù)

1

??????? 構(gòu)造函數(shù)中只有一個參數(shù)沒有默認(rèn)參數(shù)并沒有explict。構(gòu)造函數(shù)就可以把別的類型對象轉(zhuǎn)換為當(dāng)前類型鸭丛,用于運算竞穷。

調(diào)用構(gòu)造函數(shù)

??????? 如果一個對象中有以上兩種轉(zhuǎn)換方式,如果在使用過程中兩種方式都能達(dá)到目的鳞溉,編譯就會報錯瘾带。這時候再構(gòu)造函數(shù)前加explicit,構(gòu)造函數(shù)就不能進(jìn)行類型轉(zhuǎn)換熟菲。

pointer-like classes看政,智能指針

??????? 對于一個class的對象像一個指針朴恳,有指針的所有功能但可以有比指針有更多的功能。class里面必然會包含一個真正的指針允蚣。

智能指針實例

??????? 迭代器就是一種智能指針于颖。

仿函數(shù)(function-like classes)

??????? class對象像一個函數(shù),即仿函數(shù)嚷兔。()函數(shù)調(diào)用操作符森渐,對()進(jìn)行操作符重載就可以接受()這種操作符。對于標(biāo)準(zhǔn)庫的仿函數(shù)都會繼承一些奇特的基類冒晰。

namespace

??????? 多人協(xié)同作業(yè)同衣,防止函數(shù)或類或?qū)ο蟮拿麤_突;使用的時候用using namespace name或name::

????????? namespace name

????????? {

????????? }

模板template

類模板

??????? template <typname T>

函數(shù)模板 function template

函數(shù)模板

??????? 實際使用時不用直接指明class_name壶运。

成員模板 member template

??????? 類模板里面又有一個模板耐齐,里面的模板為成員模板。

????????? template<class T2,class T2>

????????? template<class U1,class U2>

??????? 下圖為一個(T1,T2)pair可以由另外一個由派生類(U1,U2)產(chǎn)生的pair構(gòu)成:

成員模板

模板特化(specialization)

??????? 設(shè)計一個模板之后前弯,將泛化部分縮小可以有的范圍或固定一個蚪缀。

?????????? ?template<>

?????????? class class_name<typ_name>{}

模板偏特化(partial specialization)

??????? 個數(shù)上的偏特化對于由多個模板參數(shù)的時候可以對其中一個或兩個進(jìn)行偏特化。


個數(shù)偏特化

??????? 范圍偏特化恕出,將一個泛化類型縮小其范圍询枚,比如說任意意類型縮小為任意類型的指針。

范圍偏特化

模板模板參數(shù)(template template parameter)

??????? 模板的參數(shù)本身又是一個模板浙巫,在template上class與typename是共通的金蜀。

c++標(biāo)準(zhǔn)庫

??????? 標(biāo)準(zhǔn)庫提供很多容器(數(shù)據(jù)結(jié)構(gòu)),算法的畴。算法通過迭代器來操作容器渊抄。通過算法和數(shù)據(jù)結(jié)構(gòu)產(chǎn)生程序。

數(shù)量不定模板參數(shù)(variadic templates)

??????? 模板接受的參數(shù)個數(shù)是不定的丧裁,然后在函數(shù)參數(shù)表中把其中確定個數(shù)分出來护桦,剩下的打包。包可以繼續(xù)進(jìn)行處理類似于遞歸煎娇。

數(shù)量不定模板參數(shù)

???????? sizeof...(args),可以知道args有多少個內(nèi)容二庵;

??????? auto 變量可以用于存放不知道類型的數(shù)據(jù),但是不能直接定義一個auto變量不賦初值缓呛。

范圍for循環(huán)(ranged-base for):

??????? for(decl:coll)用于在容器coll里面遍歷催享;

reference

??????? 引用和所引用的對象大小和地址都一模一樣,但是對于編譯器來說引用都是通過指針來實現(xiàn)的哟绊;引用在定義的時候就必須應(yīng)用一個對象因妙,不能在之后改變?yōu)槠渌麑ο螅粦?yīng)用可以和所引用的對象有相同的操作。

??????? 引用一般用于函數(shù)參數(shù)傳遞和返回攀涵,函數(shù)參數(shù)是引用和值的不同铣耘,這種不能實現(xiàn)函數(shù)的重載,因為是一樣的簽名汁果。而加或不加const是可以實現(xiàn)重載的涡拘,const是屬于函數(shù)簽名的一部分。

內(nèi)存對齊

??????? 一個類据德,實例化的對象所占空間的大小并不等于,當(dāng)前類中所有成員變量和虛指針?biāo)即笮〉暮王纬担@是由于內(nèi)存對齊的影響棘利。內(nèi)存對齊是編譯器的管轄范圍,編譯器為程序中的每個“數(shù)據(jù)單元”安排在適當(dāng)?shù)奈恢蒙闲嘟伞?nèi)存對齊主要有兩大作用:

? ? ? ? 1. 平臺原因(移植原因):不是所有的硬件平臺都能訪問任意地址上的任意數(shù)據(jù)的善玫;某些硬件平臺只能在某些地址處取某些特定類型的數(shù)據(jù),否則拋出硬件異常密强;

? ? ? ? 2. 性能原因:數(shù)據(jù)結(jié)構(gòu)(尤其是棧)應(yīng)該盡可能地在自然邊界上對齊茅郎。原因在于,為了訪問未對齊的內(nèi)存或渤,處理器需要作兩次內(nèi)存訪問系冗;而對齊的內(nèi)存訪問僅需要一次訪問。能加快訪問速度使程序運行效率更高薪鹦。

??????? 對于內(nèi)存對齊規(guī)律掌敬,對于不同的編譯器由不同的對齊方法;而派生類的內(nèi)存對齊是先在基類的內(nèi)存對齊規(guī)律上池磁,對基類進(jìn)行構(gòu)造奔害,然后才對派生類所剩余的成員變量進(jìn)行大度的內(nèi)存對齊。


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末地熄,一起剝皮案震驚了整個濱河市华临,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌端考,老刑警劉巖雅潭,帶你破解...
    沈念sama閱讀 216,591評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異跛梗,居然都是意外死亡寻馏,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,448評論 3 392
  • 文/潘曉璐 我一進(jìn)店門核偿,熙熙樓的掌柜王于貴愁眉苦臉地迎上來诚欠,“玉大人,你說我怎么就攤上這事『涿啵” “怎么了粉寞?”我有些...
    開封第一講書人閱讀 162,823評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長左腔。 經(jīng)常有香客問我唧垦,道長,這世上最難降的妖魔是什么液样? 我笑而不...
    開封第一講書人閱讀 58,204評論 1 292
  • 正文 為了忘掉前任振亮,我火速辦了婚禮,結(jié)果婚禮上鞭莽,老公的妹妹穿的比我還像新娘坊秸。我一直安慰自己,他們只是感情好澎怒,可當(dāng)我...
    茶點故事閱讀 67,228評論 6 388
  • 文/花漫 我一把揭開白布褒搔。 她就那樣靜靜地躺著,像睡著了一般喷面。 火紅的嫁衣襯著肌膚如雪星瘾。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,190評論 1 299
  • 那天惧辈,我揣著相機(jī)與錄音琳状,去河邊找鬼。 笑死咬像,一個胖子當(dāng)著我的面吹牛算撮,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播县昂,決...
    沈念sama閱讀 40,078評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼肮柜,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了倒彰?” 一聲冷哼從身側(cè)響起审洞,我...
    開封第一講書人閱讀 38,923評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎待讳,沒想到半個月后芒澜,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,334評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡创淡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,550評論 2 333
  • 正文 我和宋清朗相戀三年痴晦,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片琳彩。...
    茶點故事閱讀 39,727評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡誊酌,死狀恐怖部凑,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情碧浊,我是刑警寧澤涂邀,帶...
    沈念sama閱讀 35,428評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站箱锐,受9級特大地震影響比勉,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜驹止,卻給世界環(huán)境...
    茶點故事閱讀 41,022評論 3 326
  • 文/蒙蒙 一浩聋、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧臊恋,春花似錦赡勘、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,672評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽毙替。三九已至岸售,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間厂画,已是汗流浹背凸丸。 一陣腳步聲響...
    開封第一講書人閱讀 32,826評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留袱院,地道東北人屎慢。 一個月前我還...
    沈念sama閱讀 47,734評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像忽洛,于是被迫代替她去往敵國和親腻惠。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,619評論 2 354

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