資料介紹
Google的項(xiàng)目大多使用C++開(kāi)發(fā)。每一個(gè)C++程序員也都知道, C++具有很多強(qiáng)大的語(yǔ)言特性,但這種強(qiáng)大不可避免的導(dǎo)致它的復(fù)雜,而復(fù)雜性會(huì)使得代碼更容易出現(xiàn)bug.難于閱讀和維護(hù)。
本指南的目的是通過(guò)詳細(xì)闡述如何進(jìn)行C+ +編碼來(lái)規(guī)避其復(fù)雜性,使得代碼在有效使用C+ +語(yǔ)言特性的同時(shí)還易于管理。
使代碼易于管理的方法之一是增強(qiáng)代碼一 致性,讓別人可以讀懂你的代碼是很重要的,保持統(tǒng)-編程風(fēng)格意味著可以輕松根據(jù)“模式匹配”規(guī)則推斷各種符號(hào)的含義。創(chuàng)建通用的、必需的習(xí)慣用語(yǔ)和模式可以使代碼更加容易理解在某些情況下改變一些編程風(fēng)格可能會(huì)是好的選擇 但我們還是應(yīng)該遵循一致性原則,盡量不這樣去做。
本指南的另-一個(gè)觀點(diǎn)是C+ +特性的臃腫。C++是一門包含大量高級(jí)特性的巨型語(yǔ)言, 某些情況下,我們會(huì)限制甚至禁止使用某些特性使代碼簡(jiǎn)化,避免可能導(dǎo)致的各種問(wèn)題,指南中列舉了這類特性,并解釋說(shuō)為什么這些特性是被限制使用的。
注意:本指南并非C+ +教程,我們假定讀者已經(jīng)對(duì)C+ +非常熟悉。
頭文件
通常,每一個(gè).cc文件( C++的源文件)都有一個(gè)對(duì)應(yīng)的h文件(頭文件),也有一些例外,如單元測(cè)試代碼和只包含main0的.cc文件。
正確使用頭文件可令代碼在可讀性、文件大小和性能上大為改觀。
下面的規(guī)則將引導(dǎo)你規(guī)避使用頭文件時(shí)的各種麻煩。

2.頭文件依賴
使用前置聲明( forward declarations )盡量減少h文件中#include的數(shù)量。
當(dāng)一個(gè)頭文件被包含的同時(shí)也引入了一項(xiàng)新的依賴( dependency ),只要該頭文件被修改,代碼就要重新編譯。如果你的頭文件包含了其他頭文件,這些頭文件的任何改變也將導(dǎo)致那些包含了你的頭文件的代碼重新編譯。因此,我們應(yīng)該盡量少的包含頭文件,尤其是那些包含在其他頭文件中的。
使用前置聲明可以顯著減少需要包含的頭文件數(shù)量。舉例說(shuō)明:頭文件中用到類File ,但不需要訪問(wèn)File的聲明,則頭文件中只需前置聲明class File;無(wú)需#include *file/base/ileh“。
在頭文件如何做到使用類Foo而無(wú)需訪問(wèn)類的定義?1)將數(shù)據(jù)成員類型聲明為Foo *或Foo & ;
2)參數(shù)。返回值類型為Foo的函數(shù)只是聲明(但不定義實(shí)現(xiàn));
3)靜態(tài)數(shù)據(jù)成員的類型可以被聲明為Foo ,因?yàn)殪o態(tài)數(shù)據(jù)成員的定義在類定義之外。
另一方面,如果你的類是Foo的子類,或者含有類型為Foo的非靜態(tài)數(shù)據(jù)成員,則必須為之包含頭文件。
有時(shí),使用指針成員( pointer members ,如果是scoped. ptr更好)替代對(duì)象成員( object members )的確更有意義。然而,這樣的做法會(huì)降低代碼可讀性及執(zhí)行效率。如果僅僅為了少包含頭文件,還是不要這樣替代的好。
當(dāng)然,.cc文件無(wú)論如何都需要所使用類的定義部分,自然也就會(huì)包含若干頭文件。
注:能依賴聲明的就不要衣賴定義。
- 高質(zhì)量C++/C編程指南 33次下載
- C和C++實(shí)物精選《C專家編程》 0次下載
- C和C++經(jīng)典著作-C專家編程.PDF 0次下載
- C++核心編程基礎(chǔ)知識(shí)大全免費(fèi)下載 2次下載
- C++ Socket網(wǎng)絡(luò)編程大全源代碼下載 27次下載
- C++編程調(diào)試秘笈 15次下載
- C++編程的經(jīng)典作業(yè)和答案免費(fèi)下載 0次下載
- Google C++編程風(fēng)格指南PDF電子書(shū)免費(fèi)下載 1次下載
- 高質(zhì)量的C和C++的編程指南PDF電子書(shū)免費(fèi)下載 10次下載
- visual C++編程詞典應(yīng)用程序免費(fèi)下載 27次下載
- 如何進(jìn)行高質(zhì)量的C、C++編程?高質(zhì)量C++、C編程指南詳細(xì)資料免費(fèi)下載 30次下載
- 《Visual C++游戲編程基礎(chǔ)》電子書(shū).pdf 0次下載
- 高質(zhì)量 C++/C 編程指南 14次下載
- 高質(zhì)量C++編程指南
- Visual C++ 6.0 高級(jí)編程 -下載 0次下載
- vb語(yǔ)言和c++語(yǔ)言的區(qū)別 2431次閱讀
- C++簡(jiǎn)史:C++是如何開(kāi)始的 637次閱讀
- C與C++混合編程是什么 1744次閱讀
- C++可移植性及多線程 1026次閱讀
- C++項(xiàng)目常見(jiàn)的命名規(guī)范 2116次閱讀
- C++語(yǔ)言的發(fā)展 617次閱讀
- 能用C++開(kāi)發(fā)單片機(jī)嗎 7371次閱讀
- Google編程風(fēng)格指南(六) 2742次閱讀
- Google編程風(fēng)格指南(五) 2478次閱讀
- Google編程風(fēng)格指南(四) 2897次閱讀
- Google編程風(fēng)格指南(三) 2558次閱讀
- Google編程風(fēng)格指南(二) 2604次閱讀
- Google編程風(fēng)格指南(一) 3144次閱讀
- c++和c語(yǔ)言之間有什么區(qū)別 3.1w次閱讀
- 一張圖總結(jié)Google C++編程規(guī)范 1472次閱讀
下載排行
本周
- 148V到5KW無(wú)橋LLC雙向逆變器的電路原理圖免費(fèi)下載
- 0.26 MB | 154次下載 | 10 積分
- 22KW逆變側(cè)功率管的損耗如何進(jìn)行計(jì)算詳細(xì)公式免費(fèi)下載
- 0.40 MB | 32次下載 | 2 積分
- 3高功率密度碳化硅MOSFET軟開(kāi)關(guān)三相逆變器損耗分析
- 2.27 MB | 30次下載 | 5 積分
- 4S7-200 可編程序控制器系統(tǒng)手冊(cè)
- 12.81 MB | 4次下載 | 免費(fèi)
- 5ATX電源 FSP_ATX-300PAF電路圖資料
- 0.18 MB | 1次下載 | 2 積分
- 6IP6541_L 150uA 低功耗,集成多種快充輸出協(xié)議中文資料
- 1.43 MB | 次下載 | 免費(fèi)
- 7PC5010 單通道20V_10A低邊高速驅(qū)動(dòng)器技術(shù)手冊(cè)
- 1.17 MB | 次下載 | 免費(fèi)
- 8GSV2201D 帶嵌入式MCU的DisplayPort 1.4到HDMI 2.0轉(zhuǎn)換器規(guī)格書(shū)
- 0.67 MB | 次下載 | 2 積分
本月
- 148V到5KW無(wú)橋LLC雙向逆變器的電路原理圖免費(fèi)下載
- 0.26 MB | 154次下載 | 10 積分
- 22KW逆變側(cè)功率管的損耗如何進(jìn)行計(jì)算詳細(xì)公式免費(fèi)下載
- 0.40 MB | 32次下載 | 2 積分
- 3高功率密度碳化硅MOSFET軟開(kāi)關(guān)三相逆變器損耗分析
- 2.27 MB | 30次下載 | 5 積分
- 4STM32F10x參考手冊(cè)資料
- 13.64 MB | 12次下載 | 1 積分
- 5OAH0428 V1.0英文規(guī)格書(shū)
- 5.86 MB | 8次下載 | 免費(fèi)
- 6光伏并網(wǎng)逆變器原理
- 7.31 MB | 6次下載 | 2 積分
- 7NS1081/NS1081S/NS1081Q USB 3.0閃存數(shù)據(jù)手冊(cè)
- 0.40 MB | 4次下載 | 2 積分
- 8S7-200 可編程序控制器系統(tǒng)手冊(cè)
- 12.81 MB | 4次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935132次下載 | 10 積分
- 2開(kāi)源硬件-PMP21529.1-4 開(kāi)關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計(jì)
- 1.48MB | 420064次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233089次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191422次下載 | 10 積分
- 5十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
- 158M | 183352次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81600次下載 | 10 積分
- 7Keil工具M(jìn)DK-Arm免費(fèi)下載
- 0.02 MB | 73818次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65990次下載 | 10 積分
電子發(fā)燒友App






創(chuàng)作
發(fā)文章
發(fā)帖
提問(wèn)
發(fā)資料
發(fā)視頻
上傳資料賺積分
評(píng)論