1.內(nèi)聯(lián):寫(xiě)在類(lèi)內(nèi)或外部聲明inline(編譯器判斷是否內(nèi)聯(lián),不是滿(mǎn)足上述條件就一定內(nèi)聯(lián)),優(yōu)點(diǎn)更快
2.protected:派生類(lèi)可以直接調(diào)用基類(lèi)的protected成員
3.class類(lèi)內(nèi)默認(rèn)private,struct內(nèi)默認(rèn)public
4.構(gòu)造函數(shù)最優(yōu)寫(xiě)法,用初始化(只有構(gòu)造函數(shù)有)效率比在函數(shù)中寫(xiě)更高(因編譯器先進(jìn)行初始化再執(zhí)行函數(shù))
5.const T: T固定;T const: *固定
6.確實(shí)有把構(gòu)造函數(shù)放在private里的需求,如單例模式:通過(guò)將構(gòu)造函數(shù)寫(xiě)在private里來(lái)防止該類(lèi)對(duì)象被創(chuàng)建,通過(guò)public里的static函數(shù)或在聲明static對(duì)象時(shí)來(lái)調(diào)用
7.const函數(shù)const在函數(shù)體{}前加,只能修飾成員函數(shù),不改變數(shù)據(jù)內(nèi)容的都要設(shè)為const函數(shù)
8.如非必要(想保證原數(shù)據(jù)不變且需要改變數(shù)據(jù)副本,或源數(shù)據(jù)在生命周期結(jié)束后仍會(huì)被使用),都傳入傳出引用# 9.main()方法是固定的:public static void main(String[] args)
9.friend自由取得private成員,這就導(dǎo)致同一個(gè)class中的各個(gè)示例互為friend
10.類(lèi)內(nèi)操作符重載需要默認(rèn)存在this參數(shù),this由編譯器提供
11.可直接向引用參數(shù)中傳值
12.對(duì)于有些可以連續(xù)調(diào)用的函數(shù)(如:a+=b+=c;,cout<<a<<b;)要考慮返回值不要用void
13.淺拷貝:指針指向被拷貝對(duì)象 深拷貝:將拷貝對(duì)象的內(nèi)容給拷貝
14.三/五法則:如果一個(gè)類(lèi)有非默認(rèn)的析構(gòu)函數(shù),則必須有非默認(rèn)的拷貝構(gòu)造函數(shù)(移動(dòng)構(gòu)造函數(shù))和拷貝賦值運(yùn)算符(和移動(dòng)賦值運(yùn)算符)
15.拷貝賦值運(yùn)算符重載時(shí)要檢測(cè)是否是自我賦值
16.new是先調(diào)用內(nèi)存再構(gòu)造函數(shù),delete是先析構(gòu)再釋放內(nèi)存
17.new數(shù)組,要delete[]
18.static成員函數(shù)只能處理static數(shù)據(jù),但可被非static的class對(duì)象調(diào)用
19.template與template這兩個(gè)通用
20.explicit用來(lái)修飾單個(gè)參數(shù)的構(gòu)造函數(shù),表示該構(gòu)造函數(shù)只能顯式調(diào)用,禁止隱式轉(zhuǎn)換。
21.對(duì)于類(lèi)包類(lèi)(類(lèi)a中有類(lèi)b成員)構(gòu)造先b后a,析構(gòu)先a后b
22.delegation可在cpp中實(shí)現(xiàn)類(lèi)似接口的東西,具體為接口類(lèi)內(nèi)封裝一個(gè)private實(shí)現(xiàn)類(lèi)指針,具體實(shí)現(xiàn)功能全借助這個(gè)指針指向的實(shí)現(xiàn)類(lèi)來(lái)實(shí)現(xiàn)。這會(huì)導(dǎo)致拷貝多個(gè)對(duì)象則會(huì)指向同一個(gè)實(shí)現(xiàn)類(lèi)對(duì)象。
23.對(duì)于父類(lèi),析構(gòu)函數(shù)必須是虛函數(shù)
24.純虛函數(shù):virtual 返回值 function()=0;
25.delegation可實(shí)現(xiàn)一份a類(lèi)數(shù)據(jù)給多個(gè)b類(lèi)對(duì)象使用(a類(lèi)中包含b類(lèi)指針數(shù)組)
26.私有static成員要先在類(lèi)外進(jìn)行全局定義
27.轉(zhuǎn)換函數(shù)operator 類(lèi)型()const,寫(xiě)在類(lèi)內(nèi)public中,當(dāng)對(duì)象需要隱式類(lèi)型轉(zhuǎn)換時(shí)編譯器自動(dòng)調(diào)用
28.當(dāng)需要將其他類(lèi)型隱式轉(zhuǎn)換為a類(lèi)時(shí),編譯器會(huì)自動(dòng)調(diào)用符合的a類(lèi)構(gòu)造函數(shù)(如果有的話(huà))
29.當(dāng)一條語(yǔ)句同時(shí)滿(mǎn)足27,28兩種情況時(shí),會(huì)出現(xiàn)歧義,可以通過(guò)在構(gòu)造函數(shù)前加explicit來(lái)禁止其隱式調(diào)用
30.仿指針類(lèi)(如智能指針,迭代器)類(lèi)內(nèi)必會(huì)重載 “*” 和 “->”
31.仿函數(shù)類(lèi)類(lèi)內(nèi)必會(huì)重載“()”
32.函數(shù)模板在使用時(shí)不必指明“T”,編譯器會(huì)進(jìn)行實(shí)參推導(dǎo),類(lèi)模板需要
33.模板和重載是編譯時(shí)多態(tài),虛函數(shù)重寫(xiě)是運(yùn)行時(shí)多態(tài)
34.模板的參數(shù)仍可以是模板,特例化時(shí)所用的作為參數(shù)的模板的參數(shù)數(shù)量必須定義時(shí)作為參數(shù)的模板的參數(shù)相對(duì)應(yīng),如:
template<typename T,template<typename T,typename u>class cl>
class a {};
a<int, vector>;
vector與template<typename T,typename u>class cl對(duì)應(yīng)。而vector<vecor>中的vector不是模板參數(shù),因其已經(jīng)被特例化
文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-710028.html
文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-710028.html
到了這里,關(guān)于C++筆記(細(xì)碎小知識(shí)點(diǎn))1的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!