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

首頁 > 學院 > 開發設計 > 正文

C++面向對象高級編程(上)_Boolan(W1)

2019-11-14 11:24:11
字體:
來源:轉載
供稿:網友
                                                  C++構造函數,操作符重載,傳參數筆記1、C++是支持面向對象觀念的一種語言    主要概念:類、對象、繼承、動態綁定、多態性、消息傳遞2、C++演化C++98(1.0)初具國際規范C++03(TR1,Technical Report1)C++11(2.0)C++143、C++分為C++語言和C++標準庫兩個部分4、C vs C++   C++通過類將事物的數據和函數封裝在一起,數據只有專屬類可使用,類似C里面的Struct結構,但C++提供更多的關鍵字供開發人員使用。5、Classes的經典分類:不帶指針的類(Object Based——基于對象)與帶指針的類(Object Oriented——面向對象)   Object Based:面向的是單一class的設計   Object Oriented:面向的是多重classes的設計,classes和classes之間的關系6、文件包含#include    <>標準庫路徑尋找頭文件   “”當前項目路徑下尋找頭文件7、頭文件中的預衛式聲明   #ifndef _COMPLEX_   #define _COMPLEX_   ...   ...      #endif   如果沒有定義COMPLEX,則定義COMPLEX,第二次引用COMPLEX已定義過不會進入主體就不會有第二次include含入的動作8、模板(實現不同類型實現統一的處理)   template<typename T>   用的時候指定數據類型   complex<double> c1(2.5, 1,5);   complex<int> c2(2, 6);9、inline(內聯)函數:函數在本體定義,函數太復雜不能生成inline,由編譯器決定,類似于宏,區別于宏有宏的特性沒有宏的缺點,不再本體內定義可以加inline關鍵字定義為inline函數。10、數據盡量定義為PRivate,對外接口函數定義為public,若提供給內部使用函數可定義為private。11、構造函數    類創建對象自動調用默認構造函數。   構造函數初始化列表賦值方式與構造函數體內賦值的區別:構造函數體內賦值放棄了初始化階段,結果一樣,過程不同,效率上初始化列表賦值方式比較快。   Note:一個變量數值的設定有兩個階段一個是初始化,一個賦值。   構造函數可以有很多個(重載:同名不同參數的函數),構造函數經常重載,寫構造函數避免二義性。   如果構造函數放在private則不可被外界調用,不允許被外界創建對象,設計模式可把構造函數定義在private(singleton/單例/單體/外界只能用一份)。12、析構函數(不帶指針的類多半不用寫析構函數)13、函數后頭是否加const     獲取數據不改變數據加const,改變數據不加const,    若不改變數據不加const的可能造成編譯器無法通過。14、參數傳遞(傳值,傳引用)    盡量所有的參數傳引用(效率比較快),傳引用加const表示引用值不可更改, 返回值如果可能的話盡量傳引用。    Note:不能傳/返回臨時變量的引用15、friend(友元)可直接調用類的private數據,如果通過函數獲取數據效率相較會慢一點。Note: 相同class的各個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、操作符重載之一,成員函數    所有的成員函數都帶有一個隱藏的this指針,函數沒有定義class名稱表示全局作用域函數。17、操作符重載之二,非成員函數    非成員函數,不可返回引用,因為,引用返回的必定是個local object,全局函數沒有this指針。    Note: this指針由編譯系統自動創建,用它來指向當前被調用函數對象。this地址值就是對象的首地址,并且該對象是系統當前被調用的對象18、temp object(臨時對象) 創建臨時對象格式:typename();19、<<操作符重載函數建議全局定義
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 同德县| 杭州市| 白银市| 根河市| 寿阳县| 东莞市| 唐海县| 宁晋县| 湖口县| 勃利县| 丹东市| 秦安县| 化隆| 伊金霍洛旗| 大足县| 怀柔区| 新田县| 南木林县| 崇州市| 安泽县| 灌南县| 五寨县| 井研县| 海淀区| 乌拉特前旗| 黄龙县| 石门县| 元氏县| 革吉县| 湟源县| 县级市| 临湘市| 漳平市| 高台县| 岑溪市| 扎鲁特旗| 芜湖市| 芜湖市| 嵊泗县| 鹿邑县| 枣庄市|