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

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

導(dǎo)航

常用鏈接

留言簿(4)

隨筆分類(4)

隨筆檔案(8)

文章分類(77)

文章檔案(91)

相冊

搜索

  •  

最新評論

閱讀排行榜

評論排行榜

 

面向過程的編程風格 ? 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

泛型編程風格 ? 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)沃担涣硗庖环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

基于對象的編程風格 ? 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格 ?? Object-Oriented Programming

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

2.? 動態(tài)綁定 Dynamic binding 是面向?qū)ο缶幊田L格的第三個獨特概念,即找出實際被調(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福利精品导航| 久久国产欧美精品| 亚洲精品日本| 亚洲综合大片69999| 亚洲精品1区| 亚洲欧美另类国产| 在线成人激情黄色| 美女日韩在线中文字幕| 在线视频欧美日韩精品| 亚洲欧美日韩精品久久奇米色影视| 亚洲一区制服诱惑| 欧美精品v日韩精品v国产精品| 一区二区三区日韩精品视频| 麻豆成人在线观看| 久久久水蜜桃| 国内精品久久久久久久影视蜜臀| 亚洲一区二区三区涩| 久久精品视频亚洲| 午夜影院日韩| 麻豆精品视频| 国产日韩在线一区| 亚洲欧美日韩综合aⅴ视频| 一区二区三区精品国产| 欧美不卡在线| 欧美二区视频| 亚洲国产精品一区在线观看不卡| 久久婷婷综合激情| 免费观看日韩| 国产午夜精品全部视频播放| 午夜激情亚洲| 久久久久久久激情视频| 伊人久久av导航| 欧美成人69av| 亚洲欧美日韩另类精品一区二区三区| 久久精品麻豆| 好吊日精品视频| 久久中文久久字幕| 亚洲剧情一区二区| 亚洲伊人伊色伊影伊综合网 | 亚洲啪啪91| 亚洲欧美另类国产| 国产亚洲精品aa| 欧美黄色一级视频| 亚洲欧美三级伦理| 嫩草伊人久久精品少妇av杨幂| 亚洲人精品午夜| 夜夜爽99久久国产综合精品女不卡| 亚洲国产高清自拍| 亚洲精品一级| 欧美亚洲午夜视频在线观看| 老司机一区二区三区| 亚洲黄色一区| 欧美一区二区成人| 欧美日韩一区在线播放| 精品成人国产| 亚洲系列中文字幕| 欧美xx69| 午夜在线观看免费一区| 欧美日韩成人综合| 在线观看欧美日韩| 新狼窝色av性久久久久久| 欧美激情按摩| 久久精品国产清高在天天线| 欧美视频观看一区| 亚洲国产精品久久精品怡红院| 午夜伦欧美伦电影理论片| 亚洲国产精品一区二区久| 欧美一区亚洲一区| 国产精品丝袜91| 一区二区动漫| 亚洲国产精品激情在线观看| 性久久久久久久久| 国产精品青草综合久久久久99| 亚洲三级性片| 欧美成年人网站| 久久9热精品视频| 国产欧美69| 亚洲图片你懂的| 亚洲第一中文字幕| 久久久噜噜噜久久| 精品成人一区二区三区| 欧美一区二区三区在线| 亚洲视频网站在线观看| 欧美日本成人| 一本到12不卡视频在线dvd| 欧美成人精品一区二区三区| 久久成人精品一区二区三区| 国产伦精品一区二区三区在线观看 | 久热精品在线| 亚洲视频免费在线| 亚洲国产精品视频一区| 久久精品国产久精国产思思| 国产精品日韩精品| 亚洲综合国产| 亚洲一区视频在线| 国产精品免费久久久久久| 夜夜嗨av一区二区三区网页| 91久久精品国产91性色tv| 欧美成人精品| 亚洲精品三级| 亚洲美女黄网| 欧美性大战久久久久久久蜜臀| 亚洲午夜免费视频| 最新中文字幕亚洲| 欧美日韩在线一区二区| 亚洲一级黄色片| 亚洲永久精品国产| 国产日韩一区二区三区在线| 久久久久.com| 久久蜜桃香蕉精品一区二区三区| 在线电影一区| 亚洲高清一区二| 欧美三级欧美一级| 久久av在线看| 久久久久欧美精品| 亚洲精品三级| 亚洲午夜在线| 国产婷婷色一区二区三区| 久久这里只有| 欧美精品1区2区| 亚洲欧美日韩精品| 久久精品女人的天堂av| 91久久久在线| 一区二区福利| 国产午夜精品全部视频在线播放| 欧美成人亚洲| 欧美精品性视频| 亚洲欧美日韩精品一区二区 | 亚洲大片av| 欧美激情视频给我| 午夜久久tv| 久久先锋资源| 亚洲最新中文字幕| 亚洲已满18点击进入久久| 国产一区三区三区| 亚洲国产日韩一区二区| 国产精品激情av在线播放| 久久久国产精品亚洲一区| 免费在线欧美黄色| 亚洲欧美成人精品| 久久这里有精品15一区二区三区 | 国产美女诱惑一区二区| 麻豆av一区二区三区久久| 伊人色综合久久天天| 亚洲激精日韩激精欧美精品| 国产精品影视天天线| 欧美国产乱视频| 国产精品久久久久7777婷婷| 久久综合999| 欧美日韩国产三级| 久久一二三国产| 欧美日韩成人一区二区三区| 久久九九国产| 国产精品v片在线观看不卡 | 国产精品主播| 亚洲国产高清aⅴ视频| 国产乱码精品1区2区3区| 亚洲激情不卡| 狠狠色伊人亚洲综合成人| 亚洲免费观看高清完整版在线观看熊| 国产午夜精品久久久久久免费视| 亚洲精品久久久久久下一站| 黄色综合网站| 中文亚洲视频在线| 亚洲日本视频| 久久国产精品高清| 先锋影院在线亚洲| 欧美久久久久久蜜桃| 毛片一区二区三区| 国产欧美一区二区三区久久| 亚洲精品美女在线观看播放| 亚洲夫妻自拍| 久久精品欧洲| 久久成人免费日本黄色| 国产精品爱啪在线线免费观看| 亚洲国内自拍| 亚洲国产毛片完整版| 欧美在线精品免播放器视频| 销魂美女一区二区三区视频在线| 欧美成人乱码一区二区三区| 久久一区二区三区国产精品| 国产欧美日韩三区| 亚洲一级特黄| 亚洲一区二区三区在线播放| 欧美欧美天天天天操| 亚洲成人在线免费| 久久综合给合久久狠狠狠97色69| 欧美日在线观看| 最近中文字幕日韩精品| 亚洲国产欧美在线| 久久久五月婷婷| 久久免费视频观看| 国产一区二区无遮挡| 午夜精品一区二区三区在线播放| 亚洲欧美三级伦理| 国产精品二区在线观看| 国产精品一区二区三区观看| 免费不卡在线视频| 樱花yy私人影院亚洲|