本系列部落格用來記錄本小白學習《c++ primer 5th edition》一書對於書上較為複雜的知識點,或者初看時不能理解的知識點進行解釋和記錄。但並不是對書內各個知識點進行詳解,不適合用於代替書籍學習。語言盡量精簡化。各大佬若發現有錯誤的地方,歡迎指出,謝謝^^。
不定期更新
在c++11新標準中規定,可以為資料成員提供乙個類內初始值(in-class initializer),在建立物件時,類內初始值將用於初始化資料成員。
通過了解this指標的出現原因來理解this指標:
當年沒有c++編譯器,只能通過c++轉化成c才編譯。而c++中的class對應c語言的struct,但在struct中是沒有成員函式的,只有寫乙個全域性函式這樣就可以理解書上所講的(參見7.1節,第231頁)但是全域性函式是不能訪問類中的private和protect資料成員的,甚至也只能訪問而不能修改public資料成員,所以必須在全域性函式引數中傳乙個struct指標,這個指標就是this指標了
當我們呼叫成員函式時,實際上是在代替某個物件呼叫它也就是將成員函式看做成全域性函式,再通過this指標,為某個物件呼叫這個全域性函式
所以this->資料成員名
就是呼叫這個物件的成員了
書上有這樣一段**(7.1節,第234頁)
//輸入的交易資訊包括isbn、售出總數和售出**
istream&
read
(istream &is, sales_data &item)
ostream&
print
(ostream &os,
const sales_data &item)
初學到這裡時,對於函式引數中的istream &is
和ostream &os
兩個引數不能理解,所以也就不知道再呼叫的時候傳入什麼引數
在這裡做出解釋,cin
和cout
分別是istream
和otream
兩個型別的物件,所以在呼叫的時候,傳入例如:
read
(cin,item)
;print
(cout, item)
;
便可以正確編譯 C Primer 學習筆記 IO類
1.ifstream 和istringstream都繼承自istream,因此對三個類的物件的操作相似 2.io物件不能拷貝不能賦值 io操作的函式形參和返回值型別不能為流型別 進行io操作的函式常以引用方式傳遞和返回流,且不能為const 條件狀態 cin word 如果輸入成功,流會保持有效狀態...
C Primer學習 類 類的定義和宣告
在c 中,用類定義抽象資料型別。一 類定義 簡單來說,類就是定義了乙個新的型別和乙個新的作用域。1.類成員 訪問標號 public定義的成員可以被使用該型別的所有 訪問。private定義的成員可以被其他類成員訪問。2.建構函式 建立乙個類物件時,編譯器會自動使用乙個建構函式初始化該物件。建構函式一...
C Primer學習總結 2 類的初探
由於專案的需要,轉向學習php後台開發,c 系列已經暫停快一年了。但是昨晚做筆試題時發現自己的c 基礎已經慘不忍睹了,遂回來補課。果然基礎是不能落下的!注 在使用 include 指令引入檔案時,當包含來自標準庫的標頭檔案時,也應該用尖括號 包圍頭檔名。對於不屬於標準庫的標頭檔案,則用雙引號 包圍。...