頭文件與類的聲明
1.類的一種分類:帶指針與不帶指針的
2.<>包編譯環(huán)境已有的頭文件
3.“”包自己寫的頭文件
4.防衛(wèi)式聲明:
#ifndef_COPLEX_
#define_COPLEX_
…
#endif
防止第二次include重復(fù)操作
5.頭文件布局
前置聲明
類聲明
類定義
6.模板杀迹,類少量改動時颖对,使用模板減少重復(fù)代碼
Template
//T是類里要替換的部分
構(gòu)造函數(shù)
1.inline在本體內(nèi)定義劫灶。函數(shù)“比較快”
2.inline只是一個對編譯器的建議支子,實際執(zhí)行不一定
3.private不能在外部被訪問,public可以
4.受過專業(yè)訓(xùn)練的構(gòu)造函數(shù)寫法:(帶初值列)
Complex(double r
= 0, double I = 0):re(r), im(i){}//=后的0為默認參數(shù)
如果在{}里寫“初值”镰矿,相當(dāng)于放棄了初始化的階段
5.多數(shù)不帶指針的類不用寫析構(gòu)函數(shù)
6.構(gòu)造函數(shù)的重載(overloading)編譯之后同名函數(shù)將不同名阱穗;重載函數(shù)不能有歧義
7.(問題)創(chuàng)建對象時,在后面帶括號和不帶括號有什么區(qū)別灾馒?
查閱結(jié)果:new關(guān)鍵字創(chuàng)建對象時對于內(nèi)置類型:加括號會初始化茎用,不加括號不初始化;對于自定義類型睬罗,都會調(diào)用默認構(gòu)造函數(shù)轨功,加不加括號沒區(qū)別。
來源:http://blog.csdn.net/spaceyqy/article/details/22730939
參數(shù)傳遞與返回值
1.構(gòu)造函數(shù)能放在private區(qū)Singleton
2.const complex&常引用容达,地址傳參夯辖,不改變原值
3.不改變值的成員函數(shù),()后加上const董饰,這樣如果之后定義了一個const的對象蒿褂,再使用這個函數(shù)不會報錯
4.函數(shù)返回類型后加&返回引用
5.friend自由取得friend的private成員
6.相同class的各object互為友元
7.不能返回函數(shù)內(nèi)部局部變量的引用
操作符重載與臨時對象
1.Typename()也是強制類型轉(zhuǎn)換,臨時對象卒暂,這類返回不能用引用啄栓,生命周期到下一行就結(jié)束。
2.Cout是ostream的一個對象
3.調(diào)用成員函數(shù)的對象也祠,在函數(shù)里會有一個this指針指向它
4.操作符重載最好返回引用昙楚,因為用戶有可能用操作符連用
5.函數(shù)里產(chǎn)生了局部對象(local object),返回時不可以返回引用
6.<<操作符在重載時诈嘿,考慮連用的話應(yīng)該返回ostream&