青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

Impossible is nothing  
  愛過知情重醉過知酒濃   花開花謝終是空   緣份不停留像春風(fēng)來又走   女人如花花似夢
公告
日歷
<2025年11月>
2627282930311
2345678
9101112131415
16171819202122
23242526272829
30123456
統(tǒng)計
  • 隨筆 - 8
  • 文章 - 91
  • 評論 - 16
  • 引用 - 0

導(dǎo)航

常用鏈接

留言簿(4)

隨筆分類(4)

隨筆檔案(8)

文章分類(77)

文章檔案(91)

相冊

搜索

  •  

最新評論

閱讀排行榜

評論排行榜

 

面向過程的編程風(fēng)格 ? Procedural Programming

1.? C++ 不允許改變改變 reference 所代表的對象,對 reference 的所有操作與對“ reference 所代表的對象”所進行的操作相同。

2.? by reference 方式傳遞對象當作函數(shù)參數(shù)時,復(fù)制的將是對象的地址,函數(shù)中對該對象的所有操作都相當是對傳入的對象進行間接操作。

3.? pointer reference 的最重要差異是, pointer 可以為空,使用前一定要確保其值非 0 ,而 reference 必定代表某個對象,不必作此檢查。

4.? 編譯器無法根據(jù)函數(shù)返回值型別來區(qū)分兩個具有相同名稱的函數(shù),因為返回值型別無法保證提供我們一個足以區(qū)分不同重載函數(shù)的情境。

5.? 由函數(shù)指針尋址出來的函數(shù),其調(diào)用方式和一般函數(shù)相同。

6.? 可以給函數(shù)指針賦予初值,函數(shù)名稱即代表了函數(shù)的地址。

7.? 標準的或項目專屬的頭文件應(yīng)用尖括號擴??;用戶自行提供的頭文件則使用引號。

2002-6-3

泛型編程風(fēng)格 ? Generic Programming

1.? Standard Template Library (STL) 主要由兩種組件構(gòu)成:容器 container 和泛型算法 generic algorithm < 通過 function template 技術(shù),實現(xiàn)與容器及數(shù)值類型無關(guān)之功能 > 。

2.? 容器分類: < 切記: vector 可以是空的,數(shù)組則否 >

序列式容器 sequential container vector, list, deque……

關(guān)聯(lián)式容器 associative container map, set, ……

3.? iterator const_iterator 實際上是各個容器定義式內(nèi)的嵌套 nested 型別。

4.? 使用泛型算法須 #include <algorithm> ,使用 function object #include <functional>

5.? function object 是某種 class 的實體對象,該 class function call 運算符進行了重載操作從而可使 function object 被當作一般函數(shù)來使用。令 function call 運算符成為 inline ,從而消除“通過函數(shù)指針來調(diào)用函數(shù)“時需付出的額外代價。

6.? function object adapter 會對 function object 進行修改操作。

7.? 綁定配接器 binder adapter <bind1nd, bind2nd> 會使 bineary function object 變成 unary function object ; negator adaper <not1, not2> 會逆轉(zhuǎn) function object 的真?zhèn)沃?;另外一種有用的 adapter 叫做 instertion adapter <back_inserter, inserter, front_inserter> #include <iterator>

8.? map 被定義為一對數(shù)值,其中 key 通常是個字符串,扮演索引角色,另一個數(shù)值是 value 。

9.? 任何一個 key 值在 map set 內(nèi)最多只有一份,若要多份相同 key 值,使用 multimap multiset 。

完成日期: 2002-6-2

基于對象的編程風(fēng)格 ? Object-Based Programming

1 .在 class 內(nèi)部定義的 member?? 函數(shù)被自動視為 inline 函數(shù)。對 inline 函數(shù)而言,聲明在 class 內(nèi)部或外部并無區(qū)別,同 non-member inline 函數(shù)一樣,它應(yīng)于頭文件中定義。

2 Triangular t(); 被編譯器視為一個函數(shù)定義!并不是聲明或定義一個 Triangular 對象!

3 .以某個 class object 作為另一個 object 的初值時,會發(fā)生 default memberwise initialization < 實際上是自動產(chǎn)生一個 copy constructor> ,可以為該 class 提供一個 copy constructor 來改變這一默認行為模式。

4 .若有必要為 class 撰寫 copy constructor ,則同樣有必要為它撰寫 copy assignment operator ,除非撰寫 copy constructor 的目的僅僅是為了激活編譯器實施 NRV 優(yōu)化。

5 .凡是在 class 主體以外定義的 const member function ,必須同時在聲明與定義時都提供 const 關(guān)鍵字, const 緊接于函數(shù)參數(shù)表之后。

6 member function 返回一個指向 member data non-const reference ,實際上等于將該 member data 開放出去,允許程序在其它地方加以修改。由于函數(shù)可以根據(jù)參數(shù) const 與否 ?? 而重載,故可以提供兩份定義,一份為 const 版本,一份為 non-const 版本。

8.? 設(shè)計 class 時,鑒定其 const member function 是一件很重要的事情!

9.? member data 聲明為 mutable 表明:對該 member data 的修改不會破壞 class object 的常數(shù)性。

10.????????????? 欲以一個對象復(fù)制出另一個對象,先確定兩個對象是否相同是個好習(xí)慣。

11.????????????? 運算符的重載規(guī)則:不可以引入新的運算符,除了 ., .*, ::, ?: 4個運算符,其它運算符皆可被重載;運算符的操作數(shù) operand 不可改變;運算符的優(yōu)先級不可改變;運算符函數(shù)的參數(shù)列中必須至少有一個參數(shù)為 class 型別。

12 increment decrement 運算符的前置及后置版本都可直接施行于 class object 其之上,編譯器會自動為后置版產(chǎn)生一個 int 引數(shù),其值必為 0 。

13 .所謂 friend ,具備了與 class member function 相同的存取權(quán)限,可以存取 class private member

14 .只要 class 設(shè)計者顯示提供了 copy assignment operator ,它就會被用來取代 default memberwise copy 行為。

15 .當編譯器在編譯過程中遇到函數(shù)調(diào)用,例如 lt(ival) , lt 可能是函數(shù)名稱,可能是函數(shù)指針,也可能是一個提供了 function call function object 。如果 lt 是個 function object ,編譯器會在內(nèi)部將此語句轉(zhuǎn)化為: lt.operator(ival)

16 function call 可以接受多個運算符,通常將 function object 當作參數(shù)傳給泛型算法。

17 .為了取得某個 member function 的地址,只需對函數(shù)名稱施以取址 address-of 運算符,同時,函數(shù)名稱之前必須先以 class object 運算符加以修飾,而返回型別及參數(shù)表皆不需指明,如: void (classname::*mfptr) (int) = &classname::mfname;

18 .注意所謂的 maximal munch 編譯規(guī)則,如: static vector<vector<int> > seq; 兩個 ”>” 號之間必須加有空格,否則無法成功編譯!

19 pointer to member function pointer to function 的一個不同點是:前者必須通過同類的對象加以調(diào)用。 .* 符號是針對 class object pointer to member selection 運算符, ->* 符號是針對 pointer to class object pointer to member selection 。使用它們時注意必須加上外圍小括號!如: (classobject.*mfptr)(par);

??????????????????????????????????????????????????????? 完成日期: 2002-6-18

?

面向?qū)ο缶幊田L(fēng)格 ?? Object-Oriented Programming

1.? 面向?qū)ο缶幊痰膬身椬钪饕奶匦允抢^承 inheritance 和多態(tài) polymorphism

2.? 動態(tài)綁定 Dynamic binding 是面向?qū)ο缶幊田L(fēng)格的第三個獨特概念,即找出實際被調(diào)用的究竟是哪一個派生類的函數(shù)。而靜態(tài)綁定 Static binding 則在程序運行之前就決議出應(yīng)該調(diào)用哪一個函數(shù)。

3.? 多態(tài)和動態(tài)綁定的特性只有在使用 pointer reference 時才能發(fā)揮。

4.? staitic member function 無法被聲明為虛擬函數(shù)。

5.? 任何一個類只要有純虛擬函數(shù),程序就會因其接口的不完整而無法為它產(chǎn)生任何對象,這種類只能作為派生類的子對象 subobject 之用,而且派生類必須為所有純虛擬函數(shù)提供確切的定義。

6.? 根據(jù)一般規(guī)則,凡基類定義有虛擬函數(shù),其 destructor 應(yīng)聲明為 virtual 。但 Stanley B.Lippman 并不建議在這個基類中將其 destructor 聲明為 pure virtual ,而是提供空白定義: inline baseclass::~baseclass(){};

7.? 對于 public inheritance ,繼承而來的 public 成員和 protected 成員,無論在繼承體系中的深度如何,都可視為派生類自身擁有的成員。

8.? 每當派生類有某個 member 與其基類的 member 同名時,便會遮蔽住基類的那份 member ,若要在派生類中使用繼承而來的那份 member ,必須使用 class scope 運算符加以修飾。

9.? 不可為抽象基類定義任何對象,它們扮演的角色是每個派生類的 subobject ,基于此點,一般將抽象基類的 constructor 聲明為 protected 而非 public

10.????????????? 派生類之 constructor ,不僅必須為派生類之 data members 進行初始化操作,還需為其基類之 data members 提供適當?shù)闹怠?/span> copy constructor copy assignment operator 的情形也一樣,唯一棘手的是,必須明白調(diào)用基類的 copy assignment operator base::operator = (rhs);

11.????????????? 改寫基類提供的虛擬函數(shù),派生類提供的定義其函數(shù)型別必須完全符合基類所聲明的函數(shù)原型,包括參數(shù)列、返回型別、常量型 const-ness 。但是,對于“返回型別”有個例外:當基類的虛擬函數(shù)返回某個基類形式(通常是 pointer reference )時,派生類中的同名函數(shù)可以返回該基類所派生出來的型別。

12.????????????? 在兩種情況下,虛擬函數(shù)機制不會出現(xiàn)預(yù)期行為: 1 )在基類的 constructor destructor 內(nèi); 2 )使用基類的對象而非對象的 pointer reference 。

13.????????????? typeid 運算符是 RTTI 的一部分,可以用它來查詢多態(tài)化的 class pointer class reference ,獲得其所指對象的實際型別。 typeid 運算符會返回一個 type_info 對象,其中存儲著與型別相關(guān)的種種信息。 #include<typeinfo>

完成日期: 2002-6-19

異常處理 ?? Exception Handling

1.? 初學(xué)者常犯的錯誤:將 C++ 異常和 segmentation fault 或是 bus error 這類硬件異?;煜谝黄?。

2.? 在異常處理機制終結(jié)某個函數(shù)之前, C++ 保證函數(shù)中的所有局部對象的 destructor 都會被調(diào)用。

3.? auto_ptr 是標準程序庫提供的 class template ,它會自動 delete 通過 new 表達式配置的對象。 auto_ptr dereference 運算符和 arrow 運算符予以重載,使得我們可以像使用一般指針一樣使用 auto_ptr 對象。 #include <memory>

4.? 如果 new 表達式無法從程序的自由空間 free store 配置到足夠的內(nèi)存,它會拋出 bad_alloc 異常對象。如果要壓抑不讓 bad_alloc 異常被拋出,可以這么寫: somepointer = new (nothrow) someclass; 這樣,如果 new 動作失敗,返回值為 0

5.? 標準程序庫定義了一套異常類體系 exception class hierarchy ,其最根部是名為 exception 的抽象基類。 exception 聲明有一個 what() 虛擬函數(shù),會返回一個 const char* ,用以表示被拋出異常的文字描述。 #include <exception>

6.? ostringstream class 提供“內(nèi)存內(nèi)的輸出操作”,輸出到一個 string 對象上。當需要將多筆不同型別的數(shù)據(jù)格式轉(zhuǎn)化為字符串表現(xiàn)式時,它尤其有用。 ostringstream 提供的 str() 可以返回對應(yīng)的那個 string 對象。 #include <sstream>

7.? iostream 庫也對應(yīng)提供了 istringstream class ,如果需要將非字符串數(shù)據(jù)的字符串表現(xiàn)式轉(zhuǎn)化為其實際型別, istringstream 可派上用場。

8.? string class 的轉(zhuǎn)換函數(shù) c_str() 會返回 const char* !

posted on 2006-06-03 17:47 笑笑生 閱讀(607) 評論(0)  編輯 收藏 引用 所屬分類: C++語言
 
Copyright © 笑笑生 Powered by: 博客園 模板提供:滬江博客
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            久久综合九色九九| 日韩亚洲欧美综合| 欧美一区二区三区婷婷月色| 国产精品国产自产拍高清av王其 | 午夜亚洲一区| 国产精品一区二区久久久| 欧美在线二区| 久久国产免费| 亚洲国产精品一区二区www在线| 欧美99在线视频观看| 欧美高清在线精品一区| 在线视频一区二区| 亚洲综合99| 精品成人一区二区| 亚洲国产一二三| 国产精品久久久久aaaa九色| 欧美在线3区| 另类图片综合电影| 亚洲天天影视| 欧美中文字幕视频在线观看| 亚洲大片精品永久免费| 亚洲精品视频在线观看免费| 国产精品久久久一区二区三区| 久久亚洲欧美| 国产精品电影观看| 久久综合狠狠综合久久激情| 欧美日韩爆操| 久久野战av| 国产精品扒开腿做爽爽爽软件| 久久九九久精品国产免费直播| 奶水喷射视频一区| 欧美一区二区在线播放| 免费高清在线一区| 欧美一区二区| 欧美日韩精品在线| 久久亚洲精品一区| 国产精品毛片a∨一区二区三区|国| 另类尿喷潮videofree| 欧美日韩亚洲高清| 欧美风情在线| 国产一区二区观看| 亚洲最快最全在线视频| 亚洲精美视频| 欧美在线视频免费| 欧美一区二区免费视频| 欧美日韩高清不卡| 欧美国产激情| 一色屋精品视频免费看| 亚洲影院色无极综合| 9色精品在线| 欧美不卡视频一区发布| 巨乳诱惑日韩免费av| 国产精品自在线| 99视频精品在线| 99国产成+人+综合+亚洲欧美| 久久九九有精品国产23| 久久九九精品99国产精品| 国产精品热久久久久夜色精品三区| 亚洲精品乱码久久久久| 亚洲乱码国产乱码精品精98午夜| 久久九九热免费视频| 浪潮色综合久久天堂| 韩曰欧美视频免费观看| 欧美在线播放一区二区| 久久久欧美一区二区| 国产一级揄自揄精品视频| 亚洲免费在线电影| 午夜视频久久久久久| 国产精品最新自拍| 亚洲欧美一级二级三级| 久久er99精品| 国内精品福利| 久久亚洲一区| 亚洲激情二区| 亚洲天堂成人在线观看| 国产精品久久久久久久7电影| 一区二区三区蜜桃网| 午夜精品久久久久久| 国产欧美日本一区二区三区| 欧美亚洲网站| 欧美va天堂| 一本色道久久99精品综合| 国产精品国码视频| 羞羞答答国产精品www一本| 快射av在线播放一区| 亚洲人成啪啪网站| 欧美日韩亚洲国产精品| 亚洲欧美视频一区二区三区| 免费成人高清视频| 亚洲精品在线看| 国产精品女同互慰在线看| 欧美综合77777色婷婷| 欧美激情aaaa| 午夜天堂精品久久久久| 狠狠色伊人亚洲综合网站色| 免费日韩视频| 亚洲欧美成人一区二区三区| 麻豆精品在线播放| 亚洲一区二区免费在线| 国产真实精品久久二三区| 欧美护士18xxxxhd| 亚洲中字黄色| 亚洲国产日韩欧美在线动漫| 欧美亚洲尤物久久| 亚洲精品日韩一| 国产日韩精品在线观看| 欧美精品一区二区三| 性欧美激情精品| 亚洲精品小视频| 免费在线成人| 欧美在线视频一区二区| 日韩午夜中文字幕| 黄色小说综合网站| 国产精品婷婷| 欧美日韩国产区一| 久久免费高清| 翔田千里一区二区| 亚洲最新视频在线播放| 麻豆av一区二区三区久久| 亚洲综合首页| 99热在这里有精品免费| 国产一区二区精品在线观看| 国产精品爱久久久久久久| 欧美国产综合一区二区| 久久久噜噜噜久噜久久| 亚洲欧美中文字幕| 中文日韩在线视频| 亚洲黄色免费电影| 欧美成人精品三级在线观看| 久久久久国色av免费观看性色| 亚洲在线观看视频| 亚洲视频免费| 艳女tv在线观看国产一区| 亚洲国产mv| 在线免费日韩片| 精品9999| 精品999网站| 精品成人一区二区三区| 狠狠色伊人亚洲综合网站色| 国产亚洲精品成人av久久ww| 国产日韩av一区二区| 国产女主播一区| 国产亚洲视频在线| 国产午夜久久久久| 国产一级一区二区| 狠狠色综合网| 亚洲成人资源| 亚洲日本电影| 9色精品在线| 亚洲图片欧洲图片日韩av| 亚洲男人av电影| 欧美一级电影久久| 久久久久在线| 欧美成人在线免费观看| 亚洲电影在线免费观看| 最新成人av网站| 亚洲午夜精品久久久久久app| 亚洲调教视频在线观看| 亚洲欧美日韩高清| 久久精品国产一区二区电影 | 午夜国产精品视频| 午夜精品www| 久久精品日产第一区二区| 久久亚洲不卡| 欧美日韩视频一区二区| 国产精品观看| 激情亚洲网站| 一区二区三区欧美亚洲| 亚洲欧美精品suv| 久久久综合网| 91久久精品日日躁夜夜躁国产| av不卡在线看| 久久精选视频| 欧美四级电影网站| 激情自拍一区| 一区二区高清| 久久久伊人欧美| 99在线精品免费视频九九视| 午夜精品久久久久久| 免费在线观看成人av| 国产精品久久久久久久久久三级| 国产在线成人| 亚洲午夜免费福利视频| 美女精品在线观看| 一本一本久久a久久精品综合妖精| 销魂美女一区二区三区视频在线| 欧美国产一区视频在线观看 | 欧美精品一区二区三区蜜桃| 国产欧美日韩另类一区| 亚洲免费av片| 久久综合色88| 一区二区欧美视频| 免费中文日韩| 国外成人在线视频| 亚洲女人天堂成人av在线| 欧美大片网址| 欧美中文字幕久久| 国产精品日产欧美久久久久| 亚洲精品一区二| 嫩草国产精品入口|