c++第一周筆記(Boolan)

第一周筆記

一C++編程簡(jiǎn)介

基于對(duì)象Object Based:對(duì)單一class的設(shè)計(jì),

面向?qū)ο驩bejct Oriented:面對(duì)的是多重classes的設(shè)計(jì),classes和classes之間的關(guān)系

STL是Standard Template Library的簡(jiǎn)稱(標(biāo)準(zhǔn)模板庫(kù))

Struct與class的區(qū)別欢搜?

最本質(zhì)的區(qū)別就是默認(rèn)的訪問(wèn)控制。struct作為數(shù)據(jù)結(jié)構(gòu)的實(shí)現(xiàn)體,它默認(rèn)的數(shù)據(jù)訪問(wèn)控制是public的鹏氧,而class作為對(duì)象的實(shí)現(xiàn)體,它默認(rèn)的成員變量訪問(wèn)控制是private的佩谣。

#include<cstdio>與#include<stdio.h>的區(qū)別??

加C頭文件是C++為了兼容純C語(yǔ)法而對(duì).h文件進(jìn)行了處理把还,例如cstdio

寫.h文件時(shí) 通常會(huì)加上防衛(wèi)式聲明

在include一個(gè)文件時(shí),若程序中include了當(dāng)前程序中已經(jīng)include了的文件,則不會(huì)有重復(fù)的include含入動(dòng)作(最好任何頭文件都要加防衛(wèi)式的聲明)

把t指定為double和int

(本體內(nèi)定義的就是inline function)不在本體內(nèi)定義的加inline

復(fù)雜的沒(méi)法內(nèi)聯(lián)如何理解吊履?

可消除所有與調(diào)用相關(guān)的痕跡以及性能的損失安皱。inline通過(guò)消除調(diào)用開(kāi)銷來(lái)提升性能。

內(nèi)聯(lián)函數(shù)與宏函數(shù)的區(qū)別

(1)內(nèi)聯(lián)函數(shù)同宏函數(shù)一樣將在被調(diào)用處進(jìn)行代碼展開(kāi)艇炎,省去了參數(shù)壓棧酌伊、棧幀開(kāi)辟與回收,結(jié)果返回等缀踪,從而提高程序運(yùn)行速度居砖。

(2)內(nèi)聯(lián)函數(shù)相比宏函數(shù)來(lái)說(shuō),在代碼展開(kāi)時(shí)辜贵,會(huì)做安全檢查或自動(dòng)類型轉(zhuǎn)換(同普通函數(shù))悯蝉,而宏定義則不會(huì)。

inline函數(shù)的缺點(diǎn)總結(jié)如下:?
(1)代碼膨脹托慨。
inline函數(shù)帶來(lái)的運(yùn)行效率是典型的以空間換時(shí)間的做法鼻由。內(nèi)聯(lián)是以代碼膨脹(復(fù)制)為代價(jià),消除函數(shù)調(diào)用帶來(lái)的開(kāi)銷厚棵。如果執(zhí)行函數(shù)體內(nèi)代碼的時(shí)間抵拘,相比于函數(shù)調(diào)用的開(kāi)銷較大侨糟,那么效率的收獲會(huì)很少拨拓。另一方面苏遥,每一處內(nèi)聯(lián)函數(shù)的調(diào)用都要復(fù)制代碼,將使程序的總代碼量增大彬犯,消耗更多的內(nèi)存空間向楼。

(2)inline函數(shù)無(wú)法隨著函數(shù)庫(kù)升級(jí)而升級(jí)。
如果f是函數(shù)庫(kù)中的一個(gè)inline函數(shù)谐区,使用它的用戶會(huì)將f函數(shù)實(shí)體編譯到他們的程序中湖蜕。一旦函數(shù)庫(kù)實(shí)現(xiàn)者改變f,所有用到f的程序都必須重新編譯宋列。如果f是non-inline的昭抒,用戶程序只需重新連接即可。如果函數(shù)庫(kù)采用的是動(dòng)態(tài)連接炼杖,那這一升級(jí)的f函數(shù)可以不知不覺(jué)的被程序使用灭返。

(3)是否內(nèi)聯(lián),程序員不可控坤邪。
inline函數(shù)只是對(duì)編譯器的建議熙含,是否對(duì)函數(shù)內(nèi)聯(lián),決定權(quán)在于編譯器罩扇。編譯器認(rèn)為調(diào)用某函數(shù)的開(kāi)銷相對(duì)該函數(shù)本身的開(kāi)銷而言微不足道或者不足以為之承擔(dān)代碼膨脹的后果則沒(méi)必要內(nèi)聯(lián)該函數(shù)婆芦,若函數(shù)出現(xiàn)遞歸怕磨,有些編譯器則不支持將其內(nèi)聯(lián)喂饥。

(比較推薦的寫法是把一個(gè)經(jīng)常要用的而且實(shí)現(xiàn)起來(lái)比較簡(jiǎn)單的小型函數(shù)放到類里去定義消约,大型函數(shù)最好還是放到類外定義。)

Public:

Private:一般哪些放入private(不打算被外界調(diào)用的)

(第三種员帮?)protectd

外部如何得到private數(shù)據(jù)或粮?

public中讀取

設(shè)定讀寫!!!

構(gòu)造函數(shù):構(gòu)造函數(shù)與類名相同;沒(méi)有指明參數(shù)用默認(rèn)值,沒(méi)有返回類型(不需要)

用來(lái)創(chuàng)建對(duì)象

(相比起來(lái)效率低)

變量數(shù)值設(shè)定分兩階段:初始化捞高,賦值(assign)

用動(dòng)態(tài)方式創(chuàng)建氯材,得到指針

析構(gòu)函數(shù)?硝岗?,不帶指針的類多半不用析構(gòu)函數(shù)

構(gòu)造函數(shù)可以有很多歌重載overloading(常常發(fā)生在構(gòu)造函數(shù))

同名函數(shù)可以有多個(gè)

8uHG氢哮?

這里不行

因?yàn)檫@里調(diào)用complex的話1和2沖突

把構(gòu)造函數(shù)放進(jìn)private(有這種需求)

設(shè)計(jì)模式--singleton(單例)

設(shè)計(jì)接口指的是?

不加const的后果:

如果被調(diào)用處沒(méi)有加const 使用時(shí)加了const

Reference(引用)最好所有參數(shù)都pass by reference而不是pass by value

希望傳了引用而不能改內(nèi)容時(shí) 加一個(gè)const

c++比其他面向?qū)ο笮室咝吞矗@部分也是講提高效率

返回值的傳遞也盡量 by reference

什么情況不return by reference冗尤?

Friend打破了封裝

通過(guò)函數(shù)拿數(shù)據(jù)效率比f(wàn)riend拿數(shù)據(jù)效率慢

編寫class注意三點(diǎn)(以高效率為標(biāo)準(zhǔn))

數(shù)據(jù) 一定放在private里面

參數(shù)盡可能pass by reference(加不加const看狀況)

盡量renturn by reference

在類的本體里的函數(shù),能加const的就加

構(gòu)造函數(shù) 盡量用初值列

關(guān)于::

??1)global scope(全局作用域符)胀溺,用法(::name)
2)class scope(類作用域符)裂七,用法(class::name)
3)namespace scope(命名空間作用域符),用法(namespace::name)

c++語(yǔ)言中建議使用引用類型的形參代替指針仓坞?背零? ?詳見(jiàn)p190 ?

操作符重載與臨時(shí)對(duì)象 ?(下列代碼,皆是class body外的)

操作符重載實(shí)質(zhì)上是函數(shù)重載

(用reference的好處)

這里complex&接收无埃,return *ths傳出怎么理解徙瓶?? ?????????????

按照c的特性嫉称,基本操作符可以做上圖中從右到左的賦值

如果而這里設(shè)計(jì)成void 侦镇,c3+=c2+=c1不能通過(guò)

小結(jié):當(dāng)使用者連串使用重載運(yùn)算符時(shí)應(yīng)注意重載操作符函數(shù)的定義

返回的是臨時(shí)對(duì)象,則不能return by reference

黃色部分創(chuàng)建的就是臨時(shí)對(duì)象

設(shè)計(jì)函數(shù)時(shí)兩種思想

設(shè)計(jì)成成員函數(shù)

設(shè)計(jì)成全局函數(shù)(前面沒(méi)有類的名稱)

如果使用時(shí)連串輸出澎埠,則不能定義成void ??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末虽缕,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子蒲稳,更是在濱河造成了極大的恐慌氮趋,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,378評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件江耀,死亡現(xiàn)場(chǎng)離奇詭異剩胁,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)祥国,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,356評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門昵观,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)晾腔,“玉大人,你說(shuō)我怎么就攤上這事啊犬∽评蓿” “怎么了?”我有些...
    開(kāi)封第一講書人閱讀 152,702評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵觉至,是天一觀的道長(zhǎng)剔应。 經(jīng)常有香客問(wèn)我,道長(zhǎng)语御,這世上最難降的妖魔是什么峻贮? 我笑而不...
    開(kāi)封第一講書人閱讀 55,259評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮应闯,結(jié)果婚禮上纤控,老公的妹妹穿的比我還像新娘。我一直安慰自己碉纺,他們只是感情好船万,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,263評(píng)論 5 371
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著惜辑,像睡著了一般唬涧。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上盛撑,一...
    開(kāi)封第一講書人閱讀 49,036評(píng)論 1 285
  • 那天碎节,我揣著相機(jī)與錄音,去河邊找鬼抵卫。 笑死狮荔,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的介粘。 我是一名探鬼主播殖氏,決...
    沈念sama閱讀 38,349評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼姻采!你這毒婦竟也來(lái)了雅采?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書人閱讀 36,979評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤慨亲,失蹤者是張志新(化名)和其女友劉穎婚瓜,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體刑棵,經(jīng)...
    沈念sama閱讀 43,469評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡巴刻,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,938評(píng)論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了蛉签。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片胡陪。...
    茶點(diǎn)故事閱讀 38,059評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡沥寥,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出柠座,到底是詐尸還是另有隱情邑雅,我是刑警寧澤,帶...
    沈念sama閱讀 33,703評(píng)論 4 323
  • 正文 年R本政府宣布愚隧,位于F島的核電站蒂阱,受9級(jí)特大地震影響锻全,放射性物質(zhì)發(fā)生泄漏狂塘。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,257評(píng)論 3 307
  • 文/蒙蒙 一鳄厌、第九天 我趴在偏房一處隱蔽的房頂上張望荞胡。 院中可真熱鬧,春花似錦了嚎、人聲如沸泪漂。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 30,262評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)萝勤。三九已至,卻和暖如春呐伞,著一層夾襖步出監(jiān)牢的瞬間敌卓,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 31,485評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工伶氢, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留趟径,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,501評(píng)論 2 354
  • 正文 我出身青樓癣防,卻偏偏與公主長(zhǎng)得像蜗巧,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子蕾盯,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,792評(píng)論 2 345

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