国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

C++面向?qū)ο蟾呒?jí)編程(上)_Boolan(W1)

2019-11-14 10:34:54
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
                                                  C++構(gòu)造函數(shù),操作符重載,傳參數(shù)筆記1、C++是支持面向?qū)ο笥^念的一種語(yǔ)言    主要概念:類、對(duì)象、繼承、動(dòng)態(tài)綁定、多態(tài)性、消息傳遞2、C++演化C++98(1.0)初具國(guó)際規(guī)范C++03(TR1,Technical Report1)C++11(2.0)C++143、C++分為C++語(yǔ)言和C++標(biāo)準(zhǔn)庫(kù)兩個(gè)部分4、C vs C++   C++通過(guò)類將事物的數(shù)據(jù)和函數(shù)封裝在一起,數(shù)據(jù)只有專屬類可使用,類似C里面的Struct結(jié)構(gòu),但C++提供更多的關(guān)鍵字供開(kāi)發(fā)人員使用。5、Classes的經(jīng)典分類:不帶指針的類(Object Based——基于對(duì)象)與帶指針的類(Object Oriented——面向?qū)ο螅?nbsp;  Object Based:面向的是單一class的設(shè)計(jì)   Object Oriented:面向的是多重classes的設(shè)計(jì),classes和classes之間的關(guān)系6、文件包含#include    <>標(biāo)準(zhǔn)庫(kù)路徑尋找頭文件   “”當(dāng)前項(xiàng)目路徑下尋找頭文件7、頭文件中的預(yù)衛(wèi)式聲明   #ifndef _COMPLEX_   #define _COMPLEX_   ...   ...      #endif   如果沒(méi)有定義COMPLEX,則定義COMPLEX,第二次引用COMPLEX已定義過(guò)不會(huì)進(jìn)入主體就不會(huì)有第二次include含入的動(dòng)作8、模板(實(shí)現(xiàn)不同類型實(shí)現(xiàn)統(tǒng)一的處理)   template<typename T>   用的時(shí)候指定數(shù)據(jù)類型   complex<double> c1(2.5, 1,5);   complex<int> c2(2, 6);9、inline(內(nèi)聯(lián))函數(shù):函數(shù)在本體定義,函數(shù)太復(fù)雜不能生成inline,由編譯器決定,類似于宏,區(qū)別于宏有宏的特性沒(méi)有宏的缺點(diǎn),不再本體內(nèi)定義可以加inline關(guān)鍵字定義為inline函數(shù)。10、數(shù)據(jù)盡量定義為PRivate,對(duì)外接口函數(shù)定義為public,若提供給內(nèi)部使用函數(shù)可定義為private。11、構(gòu)造函數(shù)    類創(chuàng)建對(duì)象自動(dòng)調(diào)用默認(rèn)構(gòu)造函數(shù)。   構(gòu)造函數(shù)初始化列表賦值方式與構(gòu)造函數(shù)體內(nèi)賦值的區(qū)別:構(gòu)造函數(shù)體內(nèi)賦值放棄了初始化階段,結(jié)果一樣,過(guò)程不同,效率上初始化列表賦值方式比較快。   Note:一個(gè)變量數(shù)值的設(shè)定有兩個(gè)階段一個(gè)是初始化,一個(gè)賦值。   構(gòu)造函數(shù)可以有很多個(gè)(重載:同名不同參數(shù)的函數(shù)),構(gòu)造函數(shù)經(jīng)常重載,寫構(gòu)造函數(shù)避免二義性。   如果構(gòu)造函數(shù)放在private則不可被外界調(diào)用,不允許被外界創(chuàng)建對(duì)象,設(shè)計(jì)模式可把構(gòu)造函數(shù)定義在private(singleton/單例/單體/外界只能用一份)。12、析構(gòu)函數(shù)(不帶指針的類多半不用寫析構(gòu)函數(shù))13、函數(shù)后頭是否加const     獲取數(shù)據(jù)不改變數(shù)據(jù)加const,改變數(shù)據(jù)不加const,    若不改變數(shù)據(jù)不加const的可能造成編譯器無(wú)法通過(guò)。14、參數(shù)傳遞(傳值,傳引用)    盡量所有的參數(shù)傳引用(效率比較快),傳引用加const表示引用值不可更改, 返回值如果可能的話盡量傳引用。    Note:不能傳/返回臨時(shí)變量的引用15、friend(友元)可直接調(diào)用類的private數(shù)據(jù),如果通過(guò)函數(shù)獲取數(shù)據(jù)效率相較會(huì)慢一點(diǎn)。Note: 相同class的各個(gè)objects互為friendseg:class complex{public:   complex (double r=0, double i = 0)         : re (r), im(i)   {}   int func(const complex& param)   { return param.re + param.im};private:   double re, im;};使用{    complex c1(2, 1);    complex c2;    c2.func(c1);} 16、操作符重載之一,成員函數(shù)    所有的成員函數(shù)都帶有一個(gè)隱藏的this指針,函數(shù)沒(méi)有定義class名稱表示全局作用域函數(shù)。17、操作符重載之二,非成員函數(shù)    非成員函數(shù),不可返回引用,因?yàn)椋梅祷氐谋囟ㄊ莻€(gè)local object,全局函數(shù)沒(méi)有this指針。    Note: this指針由編譯系統(tǒng)自動(dòng)創(chuàng)建,用它來(lái)指向當(dāng)前被調(diào)用函數(shù)對(duì)象。this地址值就是對(duì)象的首地址,并且該對(duì)象是系統(tǒng)當(dāng)前被調(diào)用的對(duì)象18、temp object(臨時(shí)對(duì)象) 創(chuàng)建臨時(shí)對(duì)象格式:typename();19、<<操作符重載函數(shù)建議全局定義
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 田林县| 巴里| 泗水县| 招远市| 孝义市| 屯昌县| 兴安县| 金坛市| 长白| 磐安县| 辽宁省| 怀柔区| 黄山市| 安远县| 郯城县| 虹口区| 昌江| 聂拉木县| 乌拉特中旗| 碌曲县| 吴江市| 宜宾县| 厦门市| 洛川县| 富锦市| 伊川县| 永川市| 报价| 二连浩特市| 同江市| 墨竹工卡县| 桂东县| 夏津县| 灯塔市| 辛集市| 资溪县| 谷城县| 临夏市| 集安市| 内乡县| 渭源县|