星期四, 2月 16, 2006

[note] Turbo C++ Bible

《Turbo C++ Bible》
Naba Barkakati



----C structure----
- 前端處理程式之假指令(Preprocessor directives)
- 變數及函式之宣告(Variable & function declaration)
- main函式
- 其他函式

----前端處理程式----
- 編譯開始前先行處理檔案
- 假指令:
- - 檔案載入: #include, 加強程式的模組化
- - 表徵字取代及巨集之處理:
- - - #define, 提高程式的可讀性
- - - 定義巨集時需慎用括號
- - 條件編譯: 允許程式的部分片段在某種條件下進行編譯

----變數宣告----
- 可見性(visibility): table 1-1(1-18)
- - 全體(global): 於函示主體外宣告,可函式外使用
- - 外部(external): 使用來自其他檔案的變數或函式
- - 區域(local): 於函試內宣告,僅可在函式內使用
- 生命期(life time):
- - 系統配置儲存空間(記憶體/ 暫存器)table 1-1(1-18)
- - 特殊關鍵字: constsnt/ volatile(?)
- 資料型態
- - 基本: char/ int/ float/ double ...etc
- - 限定子(qualifiers): long/ short/ unsigned ...etc
- - enum(enumeration): 列舉型態,可使用於任何 int 型態的場合,按順序編號--(BCB 71)
- - 陣列(array):
- - - 管理大批相同型態之資料
- - - 陣列索引值從0開始
- - - 字串需以0作為終結字元
- - - 元素在記憶體中的排列方式是一列接著一列的
- - 指標(pointer):(?)
- - - 記錄變數或函示之位址的變數
- - 結構(structures): 依相關性組織不同資料
- - 聯集(unions): 以不同方式組織相同資料
- - 自訂資料型態: typedef(?)
- - const & volatile(?)
- 可使用處
- 起始值

----函式宣告----
- 可見性
- 結構
- - 傳回值之型態: 通常傳回值不為 int 時才需加以宣告
- - 函式名稱
- - 所需參數
- - 函式原型(function phototypes): 幫助編譯程式檢查函式的參數,並產生較快速的函式返迴程式碼(?)
- - void: 不需傳回值或參數

----函式----
- 運算式(expressions)
- - 變數
- - 函式呼叫
- - 運算子(operator): table 1-2(1-22)
- - 通常是敘述的一部份,運算的結果為單一的值(不一定為數值)
- 敘述(statement): 1-26
- - 關鍵字
- - 運算式
- - 其他敘述
- - 控制程式執行的流程,並使運算式所提供之數值
- 函式定義
- - 複雜型態之函式傳回值(?)
- - 指向函式指標(?)

----OOP v.s. POP----
- object-oriented programming(物件導向程式設計) v.s. procedure-oriented programming

----資料萃取(data abstraction)----
- 資料萃取: 資料型態定義(typedef) + 資訊隱蔽(data hiding): fig 2-2 (2-5)
- 物件(object):
- - 定義資料區塊(資料型態) + 函式
- - 樣版(instance)
- 類別(class)
- - 定義物件資料型態的樣版
- - 每個物件就是類別的一個樣例
- 方法(method):
- - 運作於物件上的函式,定義出物件的行為
- - 類別的成員函式(member function)
- - 訊息傳遞(sending messages): 藉由呼叫某個方法而指示物件執行某個運算的動作,要透過呼叫物件的適當成員函式來完成

----繼承(inheritance)----
- 父類別(parent class)/ 超越性類別(super class)/ 基礎類別(base class)
- 多重繼承(multiple inheritance): 從一個以上的超越類別繼承某些行為

----同名異式(polymorphism)----
- 允許同一種運算可對不同的物件產生出不同的行為

----C 實作(2-8~2-23)----
- 定義物件
- 資料繼承: ALLOC_DATA
- 公用常式
- 使用物件

----C++ 實作(2-24~2-34)----
- 類別內的資料萃取
- 類別中的繼承關係
- 建構者(constructors)與毀滅者(destructors)
- 動態地建立——物件
- 虛擬函式(virtual functions)支援同名異式

----C++ 函式----
- 預設參數
- 溢載(overloading) 的函式名稱
- 線內函式(in-line functions)
- 夥伴函式(frienf functions)

----溢載之運算子----

----C++ 資料宣告----
- 變數可在任何地方宣告
- 結構名稱為 Stand-Alone
- 參考型態(reference types)

----C v.s. C++----
- 新的保留字
- 函式原型
- void 指標
- 字元陣列的初始化
- 字元常數的大小(sizeof)
- enums的視域
- goto的限制

----OOP & C++ summary(2-49)----

----Turbo C++實作備忘(3-2~3-12)----
- 資料項目的儲存大小
- Turbo C++ 的記憶體模式
- Turbo C++ 特有的關鍵字
- 中斷屬性
- 預先定義的整體變數
- 預先定義的前端處理程式常數
- 顯示診斷訊息