《C 高階程式設計》紅皮書筆記

2021-05-25 07:18:02 字數 1417 閱讀 5965

1、c++使用字串有3種風格:

• c風格,將字串表示成字元陣列

• 把字串包裝在一種更易於使用的串型別中,如string類

• 一些非標準的方法

2、在編寫程式之前,先不要具體編寫任何**,而應當首先設計程式,避免陷入到應用程式中;

編寫程式如果沒有設計,就像你建造一座樓房,但是卻沒有設計圖紙。

3、c++兩個基本原則:抽象和重用

4、物件導向程式設計只是一種程式設計思想,是用另一種思路來考慮程式中發生了什麼。

過程性方法的基礎是問這樣乙個問題:「這個程式要做什麼?」;與此不同,物件導向方法則問了另乙個問題:

「我要為那些實際物件建模?」。

oop所基於的思想是:不應該將程式劃分為任務,而應當劃分為物理物件模型。

5、庫(library):是用於完成乙個特定任務(如解析xml)或者處理乙個特定領域(如加密)的**集。

框架(framework):是我們設計程式時所基於的乙個**集。如mfc為建立windows視窗應用程式提供了乙個框架。

框架通常決定程式的結構。

6、c++stl是同構的:每個容器中只允許有相同型別的元素。

vector、list、deque稱為順序容器,因為他們儲存了乙個元素序列。

7、製表符和空格是不同的,製表符可以是任意長度,空格只是空格。

建議使用製表符代表4個空格的編輯器。

8、如果宣告了乙個預設建構函式或者其他任何建構函式,編譯器就不會再生成預設的建構函式。(要注意最好自己宣告乙個預設建構函式)

9、初始化列表可以在構造資料成員的同時進行初始化。

另外,初始化列表的順序要按照類中資料成員定義的順序進行,否則編譯器會提示出錯。

10、為什麼模板優於其他通用程式設計技術?

• c/c++可以使用void*來儲存任意型別的乙個指標。但是在儲存和使用的時候都要進行資料型別轉換,是型別不安全的;

• 通過多型,該類的子類都可以以基類指標的方式儲存,但並不是型別安全的。從容器中刪除乙個物件時必須要知道它的實際型別,並且還要轉換到對應的子類;

模板的缺點:

• 語法複雜;

• 解析很困難;

• 模板要求同構的資料結構;

• 儲存不同型別的物件是時會**膨脹code bloat,編譯器會為每一種型別都生成一種實現**;

11、模板和整合可同時使用

12、類的賦值操作符

classname& operator=(const classname& other);

注意返回值。

另外,賦值操作符還要允許自賦值,在方法的開始要進行檢查:

if(this==&other)

return *this;

13、定義乙個指向指標的指標

14、inline

c++允許程式設計師建議編譯器將乙個函式呼叫實際上不當成是函式呼叫,而是直接把這段**嵌入到特定位置。

紅皮書總結

由於中途趕上學校的很多事,還有期末複習,紅皮書挑錯的過程拖了很長時間,而錯誤總結起來不過兩點 輸錯字母,空格 連線資料庫的問題 1.odbc ado區別 odbc是32位資料來源,是一種較為方便的資料庫聯接機制,它有內嵌的資料庫引擎。而ado方式則需要你自己選擇資料塊引擎,自己建立連線 2.類和物件...

紅皮書例項5

俗話說的好 趁熱打鐵!完成了前四個例子之後,現在回想一下都學到了什麼,大腦又一片空白了 只是依稀記得,學了怎麼鏈結和建立簡單的資料庫,還有一些連線訪問顯示資料庫的控制項!具體的 什麼的,我只想說 我暈!雖然自己現在還處於迷茫階段,但是不能沒了自信,更不能停下學習的腳步!所以今天就滿載著前四次所積累的...

紅皮書 SQL語句

例項1 單引號 sql即結構化查詢語言 structured query language 是一種特殊目的的程式語言,是一種資料庫查詢和程式語言,用於訪問資料以及查詢 更新和管理關係資料庫系統 同時也是資料庫指令碼檔案的副檔名。sql語句無論是種類還是數量都是繁多的,很多語句也是經常要用到的,sql...