C Prime 中文版第五版 第七章 類 筆記

2021-10-04 07:44:20 字數 1810 閱讀 2665

1.類的基本思想是資料抽象和封裝。資料抽象是一種依賴於介面和實現分離的程式設計。

2.定義在類內部的函式是隱式inline函式。

3.this的目的總是指向"這個"物件,所以this是乙個常量指標。

4.c++語言的做法是允許把const關鍵字放在成員函式的引數列表之後,此時,緊跟在引數列表後面的const表示this是乙個指向常量的指標。像這樣使用const的成員函式被稱作常量成員函式。

5.常量物件,以及常量物件的引用或指標都只能呼叫常量成員函式。

6.一般來說,如果非成員函式是類介面的組成部分,則這些函式的宣告應該與類在同乙個標頭檔案內。

7.建構函式不能被宣告成const的。

8.只有當類沒有宣告任何建構函式時,編譯器才會自動地生成預設建構函式。

9.如果類包含有內建型別或者復合型別的成員,則只有當這些成員全部被賦予了類內的初始值時,這個類才適合於使用合成的預設建構函式。

10.在c++11中,如果我們需要預設的行為,那麼可以通過在引數列表後面寫上=default來要求編譯器生成建構函式。其中,=default既可以和宣告一起出現在類的內部,則預設建構函式是內聯的,也可以作為定義出現在類的外部。

11.建構函式不應該輕易覆蓋掉類內的初始值,除非新賦的值與原值不同。如果你不能使用類內初始值,則所有建構函式都應該顯式的初始化每個內建型別的成員。

12.struct和class的預設訪問許可權不一樣,struct預設的是public,class預設的是private。

13.類可以允許其他類或者函式訪問它的非公有成員,方法是令其他類或者函式成為它的友元。友元的宣告只能出現在類的內部,具體位置不限,且不受訪問許可權控制。一般來說,最好在類定義開始或者結束的位置集中宣告友元。為了使友元對類的使用者可見,通常把友元的宣告和類本身放置在同乙個標頭檔案中。

14.許多編譯器並未強制限定友元函式必須在使用之前在類的外部宣告。

15.typedef std::string::size_type pos;等價於using pos = std::string::size_type;如果是在類內,用來定義型別的成員必須先定義後使用。因此,型別成員通常出現在類開始的地方。

16.我們可以在類的內部把inline作為宣告的一部分顯式的宣告成員函式,也可以在類的外部用inline關鍵字修飾函式的定義,同時宣告也是合法的,不過,最好只在類的外部定義的地方說你inline,這樣可以使類更容易理解。

17.和我們在標頭檔案中定義inline函式的原因一樣,inline成員函式也應該與相應的類定義在同乙個標頭檔案中。

18.乙個const成員函式可以改變乙個可變成員的值。

19.當我們提供乙個類內初始值時,必須以符號=或者花括號表示。

20.乙個const成員函式如果以引用的形式返回this,那麼它的返回型別將是常量引用。

21.即使兩個類的成員列表完全一致,他們也是不同的型別。對於乙個類來說,它的成員和其他任何累的成員都不是一回事兒。

22.對於乙個類來說,一旦乙個類的名字出現後,它就被認為是宣告過了(但尚未定義),因此類允許包含指向它自身型別的引用或指標。

23.如果乙個類指定了友元類,則友元類的成員函式可以訪問此類包括非公有成員在內的所有成員。

24.友元關係不存在傳遞性,每個類負責控制自己的友元類或友元函式。

25.當把乙個成員函式宣告成友元時,我們必須明確指出該成員函式屬於哪個類。

26.struct x

x() //錯誤:f還沒有被宣告

void g();

void h();

}void x::g() //錯誤:f還沒有被宣告

void f();

void x::h() //正確

27.編譯器處理完類中的全部宣告後才會處理成員函式的定義。

C Primer第五版 第七章 7 58習題

因題目雖然簡短,但很有意思。有點小坑,表面看上去覺得是正確的,實際是錯誤的。所以在做題時多費了點時間,故在此記錄一下,以便以後查閱。解題是基於第7章 類的靜態成員 的知識點 vs2017環境。題目 下面的靜態資料成員的宣告和定義有錯誤嗎?請解釋原因。class example public stat...

《C Prime第五版》第98頁筆記

例如,假設用乙個名為text的字串向量存放文字檔案中的資料,其中的元素或者是一段話或者是乙個用於表示段落分隔的空字串。如果要輸出text中第一段的內容,可以利用迭代器寫乙個迴圈令其遍歷text,直到遇到空字串的元素為止 c primer第五版 page 98頁部分解釋 include include...

c primer plus 第五版分享

本書全面講述了c語言程式設計的相關概念和知識。全書共17章。第1 2章學習c語言程式設計所需的預備知識。第3到15章介紹了c語言的相關知識,包括資料型別 格式化輸入輸出 運算子 表示式 流程控制語句 函式 陣列和指標 字串操作 記憶體管理 位操作等等,知識內容都針對c99標準 另外,第10章強化了對...