1-C++編程簡(jiǎn)介
Object Based——以良好的方式編寫(xiě)-Class
Object Oriented——Class之間的關(guān)系-繼承蓝撇、符合、委托
參考書(shū)目:
C++ Primer Fifth Edition
The C++ Programming Language
Effective C++
The C++ Standard Library
STL 源碼剖析
2-頭文件與類的聲明
C與C++的區(qū)別
Header的布局
防御性聲明:
#ifndef __HEAD_H_ //防止多次包含同樣的頭文件
#define __HEAD_H_
#endif //回應(yīng)前方的 #ifndef
前置聲明
類聲明class xxx {};
類定義xxx::function
模板 template<typename T>
3-構(gòu)造函數(shù)
1精居、inline:編譯時(shí)直接展開(kāi),效率較高
!L考簟!inline非強(qiáng)制翔脱,編譯器會(huì)自己判斷
內(nèi)聯(lián):
函數(shù)在類內(nèi)定義時(shí)奴拦,自動(dòng)轉(zhuǎn)成內(nèi)聯(lián)的候選人。
inline只是向編譯器發(fā)出的一個(gè)請(qǐng)求届吁,編譯器可以選擇忽略這個(gè)請(qǐng)求错妖。
一般來(lái)說(shuō),inline用于優(yōu)化規(guī)模小疚沐,流程直接暂氯,頻繁調(diào)用的函數(shù),而且很多編譯器并不支持內(nèi)聯(lián)嵌套函數(shù)亮蛔。內(nèi)聯(lián)函數(shù)主要是抵消了函數(shù)調(diào)用時(shí)的開(kāi)銷株旷,但是如果將內(nèi)聯(lián)函數(shù)全部展開(kāi)的開(kāi)銷大于函數(shù)調(diào)用的開(kāi)銷,編譯器便會(huì)自動(dòng)忽略內(nèi)聯(lián)的請(qǐng)求尔邓。
內(nèi)聯(lián)函數(shù)通常定義在頭文件中晾剖。
2、access level:public梯嗽、private齿尽、protected、friend
封裝:
定義在public說(shuō)明符后的成員在整個(gè)程序內(nèi)可以被訪問(wèn)灯节,public成員定義類的接口循头。
定義在private說(shuō)明符號(hào)后面的成員可以被類的成員函數(shù)訪問(wèn),但是不能被使用該類的代碼訪問(wèn)炎疆,private部分封裝了類的實(shí)現(xiàn)細(xì)節(jié)卡骂。
一個(gè)類可以包含0個(gè)或者多個(gè)訪問(wèn)說(shuō)明符,而且對(duì)于某個(gè)訪問(wèn)說(shuō)明符能出現(xiàn)多少次也沒(méi)有嚴(yán)格限定形入。每個(gè)訪問(wèn)說(shuō)明符指定了接下來(lái)的成員的訪問(wèn)級(jí)別全跨,其有效范圍直到出現(xiàn)下一個(gè)訪問(wèn)說(shuō)明符或者到達(dá)類的結(jié)尾為止。
一個(gè)類可以用struct或者class進(jìn)行定義亿遂,區(qū)別便是struct的默認(rèn)訪問(wèn)權(quán)限為public浓若,而class的默認(rèn)訪問(wèn)權(quán)限為private渺杉。
友元:
類可以允許其他類或者函數(shù)訪問(wèn)它的非共有成員,方法是令其他類或者函數(shù)稱為它的友元挪钓。如果想把一個(gè)函數(shù)作為它的友元是越,只需要增加一條以friend關(guān)鍵字開(kāi)始的函數(shù)聲明語(yǔ)句即可。
友元函數(shù)如果定義在類的內(nèi)部碌上,則其是隱式內(nèi)聯(lián)的倚评,相同種類的類互為友元。
3馏予、默認(rèn)實(shí)參
4天梧、初始列表xxx xxx() : xx(x),yy(y)
5、overloading
重載的條件:
1吗蚌、函數(shù)有不同參數(shù)腿倚。
2纯出、函數(shù)有不同參數(shù)類型蚯妇。
4-參數(shù)傳遞與返回值
const
傳引用傳值的區(qū)別:
什么時(shí)候用傳引用,什么時(shí)候傳值
5-操作符重載與臨時(shí)對(duì)象
1暂筝、操作符重載(成員函數(shù)與非成員函數(shù))
比較全面的 C++ 操作符重載 (operator)
2箩言、temp object
6-復(fù)習(xí)Complex類的實(shí)現(xiàn)過(guò)程