C Primer 學習日誌 類

2021-10-25 16:16:35 字數 1306 閱讀 9104

本系列部落格用來記錄本小白學習《c++ primer 5th edition》一書對於書上較為複雜的知識點,或者初看時不能理解的知識點進行解釋和記錄。但並不是對書內各個知識點進行詳解,不適合用於代替書籍學習。語言盡量精簡化。各大佬若發現有錯誤的地方,歡迎指出,謝謝^^。

不定期更新

c++11新標準中規定,可以為資料成員提供乙個類內初始值(in-class initializer),在建立物件時,類內初始值將用於初始化資料成員。

通過了解this指標的出現原因來理解this指標:

當年沒有c++編譯器,只能通過c++轉化成c才編譯。而c++中的class對應c語言的struct,但在struct中是沒有成員函式的,只有寫乙個全域性函式

但是全域性函式是不能訪問類中的private和protect資料成員的,甚至也只能訪問而不能修改public資料成員,所以必須在全域性函式引數中傳乙個struct指標,這個指標就是this指標了

這樣就可以理解書上所講的(參見7.1節,第231頁)

當我們呼叫成員函式時,實際上是在代替某個物件呼叫它

也就是將成員函式看做成全域性函式,再通過this指標,為某個物件呼叫這個全域性函式

所以this->資料成員名就是呼叫這個物件的成員了

書上有這樣一段**(7.1節,第234頁)

//輸入的交易資訊包括isbn、售出總數和售出**

istream&

read

(istream &is, sales_data &item)

ostream&

print

(ostream &os,

const sales_data &item)

初學到這裡時,對於函式引數中的istream &isostream &os兩個引數不能理解,所以也就不知道再呼叫的時候傳入什麼引數

在這裡做出解釋,cincout分別是istreamotream兩個型別的物件,所以在呼叫的時候,傳入例如:

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 指令引入檔案時,當包含來自標準庫的標頭檔案時,也應該用尖括號 包圍頭檔名。對於不屬於標準庫的標頭檔案,則用雙引號 包圍。...