日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內最全IT社區(qū)平臺 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當前位置:首頁 > php開源 > php教程 > C++ 編程思想(第一卷)閱讀總結

C++ 編程思想(第一卷)閱讀總結

來源:程序員人生   發(fā)布時間:2015-01-22 08:50:26 閱讀次數(shù):3632次

最近工作閑翻閱了之前買f《C++編程思想》這里貼上我認為對我最有幫助的部份,1來留給自己溫習看,另外一方面也和小火伴們分享下:

1 OPP相干

1.1、每一個對象都有1個類型,OOP中class 和type是同義詞,在面向對象的程序設計中,我們所做的工作實際上就是創(chuàng)造新的數(shù)據(jù)類型,程序員定義class 是為了與具體問題相適應,而不是被迫適用已存在的數(shù)據(jù)類型。

1.2、當用<>來指定文件時,預處理器以特定的方式來尋覓文件,1般是環(huán)境中或編譯器命令指定的某種尋覓路徑;當采取""指定文件時,通常是從當前目錄開始尋覓,如果文件沒有找到則按<>方式進行尋覓。

2 C++總的C

2.1、整數(shù)類型范圍從小到大為:short int->int->long int。

         浮點類型范圍從小到大為:float->double->long double;

         unsigned 數(shù)不保存符號,因此有1個過剩的位可用,所以它能存儲比signed數(shù)大兩倍整數(shù)

2.2、main()的內部和外部定義的變量寄存在不同的區(qū)域;數(shù)據(jù)和函數(shù)也存在不同區(qū)域

2.3、C++編程的1般原則是在定義時進行初始化,const 變量必須有初始值

2.4、enum可以提高程序清晰度,采取union可以節(jié)省內存,所有union 變量地址都是1樣的

2.5、 采取預處理器來完成代碼調試功能,具體實現(xiàn)以下:

#define NDEBUG //...... #ifdef NDEBUG /* debugging code here*/
...... #endif
2.6、C++允許將任何類型的指針賦給void* ,但是不允許將void* z指針賦值給其他任何類型的指針。

2.7、同文件是我們和庫用戶之間的合約,合約描寫了庫中的數(shù)據(jù)結構,為函數(shù)調用規(guī)定了參數(shù)和返回值,頭文件中只限于申明,為了不頭文件的內容的屢次申明,我們可以采取以下方式避免:

#ifndef HEADER_FLAG #define HEADER_FLAG //Type declaration here ..... #endif
一樣為了不命名空間的錯亂,頭文件中絕不會看到using

2.8、如果程序員想允許顯式讓不屬于當前結果的1個成員函數(shù)訪問當前結構的對象時,可以借助friend 修飾符,friend 必須在1個結構內部聲明

3 、C++特點:

3.1、class與struct 的區(qū)分在于class的成員默許是private,而struct的成員默許是public;

3.2、C++的安全性體現(xiàn)在初始化和清除兩個方面,用構造函數(shù)確保初始化,用析構函數(shù)確保清除

3.3、C++中宏被內聯(lián)函數(shù)(inline function)代替,這樣既保證了高效性(成員函數(shù)和預處理器宏1樣高效)也保證了安全性(當調用內聯(lián)函數(shù)時,編譯器首先確保調用正確,即所有的參數(shù)類型都滿足,宏定義在預處理中,不能進行檢查)。

任何在類中定義的函數(shù)都自動的成為內聯(lián)函數(shù);

使用內聯(lián)函數(shù)的目的是減少函數(shù)調用的開心,但是如果函數(shù)交大,由于需要在調用函數(shù)的每處重復賦值代碼,這樣會使得代碼膨脹,因此小函數(shù)作為內聯(lián)函數(shù)比較理想

3.4、static使得變量存于靜態(tài)數(shù)據(jù)區(qū)中,而不是堆棧中。全局靜態(tài)對象的構造函數(shù)在main()之前調用,并且在退出main()后調用析構函數(shù);

3.5、 關鍵字namespace如何class、struct、enum和union1樣把它們的成員的名字放到不同的空間去,但namespace與class 、struct、union和enum有著明顯的區(qū)分:

        (1)namespace只能在全局范圍內定義,但他們之間可以相互嵌套;

        (2)namespace定義的結尾沒必要隨著分號;

(3)1個namespace可以在多個頭文件中用1個標識符來定義;

(4)不能像class1樣去創(chuàng)建1個名字的實例;

(5)namespace可以用另外一個名字作為他的別名;

3.6、 & 在C++表示援用,援用可以理解為1個奇特的指針,這個指針的優(yōu)點是沒必要懷疑它是不是初始化,援用的使用規(guī)則以下:

(1)利用創(chuàng)建是必須初始化;

(2)1個援用指向1個對象后不可轉變成另外一個對象的援用;

(3)不能NULL的援用

最常常看見援用的地方是函數(shù)參數(shù)和返回值中,當援用被用作函數(shù)參數(shù)是,在函數(shù)內任何對援用對象的修改將在函數(shù)外參數(shù)產生變化,固然也可傳遞指針來做相同的事情,但援用具有更清晰的語法。

3.7、拷貝構造函數(shù)(copy-constructor)是1種特殊的構造函數(shù),需要援用來實現(xiàn)從現(xiàn)有的相同類型的對象中產生新的對象。編譯器使用拷貝構造函數(shù)通過值傳遞的方式在函數(shù)中傳遞和返回對象

3.8、使用delete void * 可能會出錯,在刪除之前必須把它轉為適當?shù)念愋停駝t將會丟失內存;

3.9、C++確保在進入新類的構造函數(shù)體之前調用酥油的其他的構造函數(shù),這樣所有子對象的成員函數(shù)所做的任何調用總是轉到這個被初始化的對象中,

MyType::MyType(int i):Bar(i){///....}

4 C++ 中的多態(tài)

4.1、多態(tài)永久產生在派生類中與基類之間,C++通過virtual函數(shù)和晚綁定(late binding)實現(xiàn);

如果1個函數(shù)在基類中被申明為virtual ,那末所有的派生類中它都是virtual,可以對基類中的虛函數(shù)進行重寫;

在每一個帶有虛函數(shù)的類中,編譯器秘密放置了1個指針(vpointer)指向該對象的VTABLE(編譯器對每一個包括虛函數(shù)的類創(chuàng)建1個表:VTABLE)


編譯器從Instrument指針開始,該指針指向該對象的起始地址,對所有的Instrument或派生對象,他們的vptr都存在相同的位置(常常在對象的開頭),所以編譯器能夠取出該對象的vptr,vptr指向vtable的起始地址,所有的vtable都有相同的順序,如圖。play()第1個,what()第2個;

5、C++模板(template)

5.1、template告知編譯器,隨后定義將錯做1個或多個未指明的類型,當這個模板產生實際類代碼時,必須指定這些類型使得編譯器可以替換他們。



生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 国产高清在线 | a级成人毛片 | 久久性 | 日韩视频在线一区 | 精品福利一区二区 | 久久久夜色精品亚洲 | 亚洲第1页 | 黄视频欧美 | 国产精品久久久久久久久久浪潮 | 婷婷色狠狠| 一级aaa级毛片午夜在线播放 | 白浆在线 | free性中国 | 精品一区二区久久久久久久网站 | 亚洲一级二级三级 | 国产精品不卡视频 | 国产精品不卡 | 欧美一区二区在线 | a级毛片免费播放 | 麻豆av免费入口 | 在线一二区 | 久久久久久久久久国产 | 国产欧美精品一区二区三区 | 国产午夜精品久久 | 蜜桃久久久 | 欧美日韩在线免费 | 国产一区二区毛片 | 国产高清一二三区 | 2019中文字幕在线视频 | 国产成人在线电影 | 日本va欧美va欧美va精品 | 五月激情综合网 | 黄色日韩 | 国产精品视频区 | 爱爱小视频网站 | 欧美日韩一卡二卡三卡 | 国产乱码一区二区三区 | 日韩欧美视频一区二区 | 欧美电影一区二区三区 | 成人国产精品一区二区免费麻豆 | 久久综合久久久 |