註冊,提供介面
.作業系統.硬體廠商.就相應實現這些介面.將廠商,實現(驅動)
加入.
自然就擁有了功能.
#1 指標與引用
指標有一層間接
,引用,是直接
的.
#2 c++的轉換
c++,盡量用自己的轉,靜轉
,動轉
,常轉
,重轉
雙精 d=靜轉《雙精》c/d;
常轉
去除常易
屬性.
不能傳常物件
給非常
引數,可先常轉
,
動轉
是向下轉.失敗拋異常.不能用於缺少
虛函式的型別上.
重轉
很難移植,在函式指標間進行轉換.
c++不保證,以相同方式表示所有函式指標.
#3 不對陣列使用多型
類繼承的重要特性,可用基類指標/引用
操作派生類.
這種指標/引用
具有多型性.
好像還是可以.這個應該是類是引用型別
.
類是為了封裝的.友元
會降低類的封裝性
.
#7,8,都是符號 新/刪
重寫的注意事項.
#10,寫符號 新
,就要寫符號 刪
.
這個新和刪
是操作符
.寫這兩個函式,是隱藏,不是過載.新
申請空間,建構函式
在之上繼續初化
.
新
有乙個儲存大小的塊,當類小時,會浪費大量空間.
需要小資料時,可重寫符號 新/刪
.申請一塊大記憶體池.然後自己使用.不如一堆向量《整》
就完了.
#11 為動態分配記憶體類,宣告拷貝/賦值
函式,避免淺拷貝
.即實現深拷貝
對指標,動態申請記憶體,放資料.
#15,符號=,返回*本
引用.並寫乙個深拷貝
.派生類還要考慮基類.檢查給自己賦值的情況.
#18,類的介面要完整且最小.
#20,避免公
出現資料成員.
人家通過函式.我並不限制這點.
#21,盡量傳引用,
#22,基類要有虛析構
函式.純虛函式=0
#25,避免對指標/整數
的過載.
#33,內聯缺點
目標**體積增加,降低快取命中率.
內聯函式放標頭檔案
,
#35,公有繼承.
公有繼承,表現的是是乙個
.
#36,區分介面繼承
與實現繼承
,
介面是放公
,供外部呼叫.
實現是私
,是內部邏輯,
有時只希望子類繼承介面
,有時可繼承介面與實現
且允許改變.有時,子類同時繼承,但不允許改變.
定義純虛函式
,使派生類
僅繼承
函式的介面
.
但純虛函式
其實也可以提供定義
(即實現).
1.繼承函式的介面/實現
,通過虛函式
來實現.
2.或者基類保護函式,提供乙個預設實現.繼承類中在其中使用它,並擴充套件.帶預設實現
的純虛函式
更安全.
3,宣告非虛函式
,直接繼承.
#37,不重新定義繼承而來的非虛
函式.這叫隱藏.
#38,虛函式動態
,預設引數,靜態繫結
.,重定義預設引數等於,重定義函式
靜態型別
:程式中宣告的型別,
動態型別
:實際型別.
動轉
失敗轉空針
.
#40,分層.分層就像顆粒一樣.
大顆粒在上層.
小顆粒在下層.
小顆粒就是乙個個細小的功能體
.
#41,區別模板與繼承.
依賴類的行為為繼承
,依賴類的型別,則為模板
.
當物件型別不影響函式行為,用模板
.反之用繼承
.
繼承,就是在乙個基礎上搞事情
即擴充套件
.基
,就是基礎
,在這上面繼續搞事情.
模板,就是在乙個模板上加點自定義
.
拷貝和賦值
為私,防止拷貝/賦值
在基礎類中,對實現類中可能用到的函式加保護
.
然後實現類
實現他們.這樣,只需要實現這幾個
保護函式,就可以實現不同功能
的實現類.
元《類 t>類 子:私 基
;
#42,私有繼承.
意味著用基類
實現,只繼承實現,忽略介面
.
要注意型別安全
.
對於基類
,只作為其他類的實現
來使用.
#43,多繼承.
帶來複雜性,名字的二義性
#45,c++沒執行時檢測.要避免執行時錯誤
.
#47,非區域性(全域性,或含靜
)靜態物件,使用前初化.
函式內靜態物件(區域性靜態物件)
將全域性靜態物件,轉移至函式內(區域性靜態物件)
預設生成的析構為非虛
析構.取位址,預設返回本
針.預設拷貝/賦值
為淺拷貝
,按成員拷貝.
#48,重視編譯器的警告.
讀C陷阱與缺陷筆記
1.字元與字串 1 用單引號引起的乙個字元實際上代表乙個整數,整數值對應於該字元在編譯器採用的字符集中的序列值。eg 對於採用ascii字符集的編譯器而言,a 的含義與0141 八進位制 或者97 十進位制 嚴格一致。2 用雙引號引起的字串,代表的是乙個指向無名陣列起始字元的指標,該陣列被雙引號之間...
讀《C程式語言》筆記7
習題2 4 編寫函式squeeze s1,s2 將字串s1中任何與字串s2中字元匹配的字元都刪除 在寫次函式之前,先看下乙個更簡單的函式squeeze char s,int c 從字串s中刪除字元c includevoid squeeze char s,int c int main int i 0 ...
讀《C程式語言》筆記5
字串常量 字串常量也叫字串字面值,是用雙引號括起來的0個或多個字元組成的字串行。雙引號不是字串的一部分,它只用於限定字串。從技術角度看,字串常量就是字元陣列。字串的內部表示使用乙個空字元 0 作為串的結尾,因此,儲存字串的物理儲存單元比括在雙引號中的字元數多乙個。這種表示方法也說明,c語言對字串的長...