C++ primer记录
關于C++編程風格,可參考:Google 開源項目風格指南
?
第一章:開始
1. 頭文件:由于嵌套包含文件的原因,一個頭文件可能會被多次包含在一個源文件中。
條件指示符可防止這種頭文件的重復處理,例如:
#ifndef BOOKSTORE_H
#define BOOKSTORE_H
/* Bookstore.h 的內容 */
#endif
為了保證頭文件只被處理一次,把如下#define 指示符
#define BOOKSTORE_H
放在#ifndef 后面,這樣在頭文件的內容第一次被處理時,BOOKSTORE_H 將被定義,從而防止了在程序文本文件中以后#ifndef 指示符的值為真。
這就是頭文件的常用書寫方式。
2. 名字空間:庫文件廠商用名字空間來控制全局名字空間污染(即名字沖突)問題,以避免它們的庫污染了用戶程序的名字空間。因此我們盡量不使用use namespace XXX這種方式寫代碼,以免造成名字空間的污染。
?
第二章:C++瀏覽
1. 動態申請內存:
如:int *p = new int[5];
當我們用完了動態分配的對象或者對象的數組時,我們必須顯示地釋放這些指針,否則就會造成內存泄露現象。
內存泄漏是指一塊動態分配的內存,我們不再擁有指向這塊內存的指針,因此我們沒有辦法將它返還給程序供以后重新使用。
有一些專門檢查內存泄露的工具,比如輕量級別的valgrind等。
2. 關鍵字:explicit,可以阻止不應該允許的經過轉換構造函數進行的隱式轉換的發生。聲明為explicit的構造函數不能在隱式轉換中使用。
3. protected:在類的保護區域內的數據成員和成員函數,不提供給一般的程序,只提供給派生類。
private:放在基類的私有區域內的成員只能供該類自己使用,派生類不能使用。
4. 虛函數:被virtual修飾成員函數。作用:指向基類的指針在操作它的多態類對象時,會根據不同的類對象,調用其相應的函數。詳情可見百度百科
5. 派生類對象實際上由幾部分構成:每個基類是一個類的子對象(subobject),它在新定義的派生類中有獨立的一部分。派生類對象的初始化過程是這樣的,首先自動調用每個基類的構造函數來初始化相關的基類子對象,然后再執行派生類的構造函數。從設計的角度來看派生類的構造函數應該只初始化那些在派生類中被定義的數據成員而不是某類中的數據成員。
?
轉載于:https://www.cnblogs.com/yejinru/p/3950460.html
總結
以上是生活随笔為你收集整理的C++ primer记录的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 顺序栈(1)课本
- 下一篇: C++ 性能剖析 (四):Inherit