C Primer 筆記節選

2022-05-01 16:30:12 字數 2245 閱讀 2408

假期太懶了,幾乎什麼都沒乾(抽嘴巴)...看了幾頁《c++ primer》,記了幾行筆記...而已...

assert()是c標準庫定義的乙個通用預處理器的巨集.

標準c++標頭檔案沒有字尾.

c++中,指標最好別用來賦值,而用於管理和操縱動態分配的記憶體.

動態物件的分配和釋放,必須由程式設計師顯式地管理,用new 和 delete.

記憶體洩露指一塊動態分配的記憶體,我們不再擁有這塊記憶體的指標,因此我們沒法將它返回給程式供以後重新使用.

c++不允許成員函式與資料成員共享乙個名字,所以一般習慣在資料成員名字前面加乙個_.

一般來說,函式呼叫比直接訪問記憶體開銷大得多。所以,資訊隱藏是否為程式執行效率帶來了額外負擔?沒有,因為有內聯函式。內聯函式在呼叫點被展開。在類定義中被定義的成員函式會被自動當作內聯函式。

c++支援的函式過載,要求引數列表不同:引數型別不同或引數數目不同。

過載函式在執行時的行為與非過載函式一樣,主要負擔在編譯時刻.

在類的所有物件中共享資料的方式為static變數。

提供給程式得記憶體不是無限的,故new表示式可能失敗。

類的拷貝建構函式引用是一種沒有指標語法的指標。

每個類物件在被程式最後一次使用之後,析構函式會被自動呼叫。

程式文字檔案的字尾因編譯系統而不同.

c++為從乙個類物件到另乙個類物件賦值提供了預設操作。

把乙個類設計為基類,需要找出型別相關的成員函式,把它們標記為virtual.

虛函式呼叫的決定要等到執行時.

可用異常處理代替assert().

從設計角度看,派生類的建構函式應該只初始化那些在派生類中被定義的資料成員。

派生類建構函式的語法提供了向基類建構函式傳遞引數的介面。

inline intarrayrc::intarrayrc(int sz)

:intarray(sz){}

冒號分隔出來的部分稱作成員初始化列表,提供向intarray夠戰勝傳遞引數的機制。函式體為空,因為它們的工作就是把引數傳遞給相關的intarray建構函式。c++支援的兩種繼承:多繼承和虛擬繼承。

在oop中,在程式執行過程中任意乙個點上,都能夠查詢某個類的引用或指標所指向的實際型別,這是由rtti(執行時刻型別識別)設施提供的。

虛函式比非虛函式效率要低一些,因為它們不能被內聯。

對不同資料型別編寫函式模板,代表實際引數名的標示符用作佔位符。

類模板可以作為基類和派生類。

new表示式失敗時,標準庫會產生bad_alloc標準異常,在try塊外丟擲。

如果異常機制按照函式被呼叫的順序回查每個函式直到main函式仍沒照到處理**,那麼將呼叫標準庫函式terminate(),預設情況下,該函式結束程式。

名字空間允許我們封裝名字,改變可視性。

如果namespace內的宣告對程式而言不是立即可見的,我們可以通過::訪問。

c++的別名設施 namespace lib=cplusplus_primer_3e;

using提供了更為精細的名字可視性機制,比如using ibm::matrix;推薦此方法!

即使我們在程式文字檔案中include了c++庫標頭檔案,標頭檔案中宣告的元件也不是自動可見的。

如:#include string a="rainywh269";

也是錯誤的,必須添上using namespace std;

c++內建的陣列支援容器的機制,但是它不支援容器抽象的語義。

標準c++中,陣列叫向量。向量是乙個類模板。

vector類不是提供乙個巨大的「可以適用於向量」的成員操作集,而只是提供了乙個最小集:如等於、小於操作符、size()、empty()等。而一些通用操作如sort()、min()、max()、find()等,則是作為獨立的泛型演算法(generic algorithm)被提供的。

使用迭代器對(iterator pair)標記向量的起始處和結束處。迭代器是乙個支援指標型別抽象的類物件。

iterator是vector類模板中用typedef定義的型別。

使用泛型演算法需要的標頭檔案 .

不知道有沒有人注意到部落格頁尾處的一點變化。某天在douban上鼓搗了一下,把自己「書影音」部分的新鮮事共享到了這裡(每個都有鏈結)。

今天把它們弄成「居中」了(自己汗下...)。我要是能有個獨立網域名稱寫博,一定會像自己家一樣悉心打理,那主人翁意識肯定噌噌瞬間提公升了,一定很積極地去學學html+css、php這些。也很想試試wp。可惜木有啊木有啊...所以我的懶惰有了理由。在這喊下,誰能給我乙個啊??

Java併發程式設計實踐 筆記(節選)

1.executor 1 為什麼會有executor?無限的建立執行緒會導致浪費很多的資源,執行緒頻繁的掛起與喚醒都會影響效能。executor就充當了執行緒池的一部分。2 常見的執行緒池是executors.newfixedthreadpool 它可以生產乙個定長的執行緒池,當執行緒池中的執行緒不...

C Primer學習筆記

學習完乙個知識點後寫上自己的理解。算是總結吧,加深一下自己的印象,也可以在以後複習的時候方便檢視 加油加油!14.1關於運算子的過載 存在的意義 目前看來就是因為操作符大部分是針對資料的,比如int型,char型,書中稱為內建型別。而當類之間想要用操作符的時候,比如兩個類的物件相加,那麼就需要去重 ...

《C Primer》學習筆記

2008年7月18日 颱風海鷗登陸 1 宣告與定義 變數的定義用於為變數分配儲存空間,還可以為變數指定初始值。在乙個程式中,變數有且僅有乙個定義。變數的宣告用於向程式表明變數的型別和名字。變數的宣告包括物件名 物件型別和物件型別前的關鍵字extern 當設計標頭檔案時,記住定義和宣告的區別是很重要的...