- 入門基礎
學習程式語言第一件事,通常就是先作個簡單的程式來運行一下,並從瞭解程式語言的資料型態、變數與流程控制語法開始。
無論如何 先來個 "Hello! World!" 顯示一下程式執行結果,增加一點撰寫程式的信心!接著就耐心的瞭解一下 C++ 的資料型態,以認識一下變數、常數。
- Hello! World!
- 資料 型態(Data type)
- 字 面常量(Literal constant)
- 變數 (Variable)
- 終端機 輸入輸出(Input/Output)
程式的目的簡單的說就是運算、運算還是運算,加減乘除這類的動作是少不得的,在C++中提供運算功能的就是運算子(Operator)。
- 算 術 (Arithmetic)運算、型態轉換(Type conversion)
- 關 係 (Relational)運算、條件 (Conditional)運算
- 邏 輯(Logical)運算、位 元(Bitwise)運算
- 遞 增 (Increment)、遞減(Decrement)、指定 (Assignment)運算
流程控制語法是程式設計的基本,藉由各種條件判斷與迴圈重覆執行語法,您可以令您的程式因應不同的狀況而作出不同的回應。
- if 條件判斷
- switch 條件判斷
- for 迴圈
- while 迴圈
- break、 continue、goto
- 進階型態
陣列、字串、指標這幾種C++的進階型態相當常被使用,雖然看似複雜,但彼此之間互有相關。
各種型態的陣列各有其不同的用途,但無論如何,先從基本型態的一維陣列、二維陣列開始認識起。
C++提供了內建陣列的替代型態 vector,vector 可以如同陣列一般的操作,並記得自己的長度資訊,您也可以使用物件的方式來操作 vector 。
- 陣列型 式(Array idiom) vector
- STL 型式(STL idiom) vector
字串的本質是字元陣列,而在C++中還可以使用string類別來表現字串,兩者都有瞭解的必要。
- 字元陣 列(C-style 字串)
- 使用 string 型態
指標可指向一個記憶體位址,可對物件作間接操作,指標擁有型態,這用來告訴編譯器如何解釋記憶體空間的內容,以及每一次運算的大小。
- 指標與 記憶體位址
- 指 標的運算
- 指 標與陣列
- new 運算子與 delete 運算子
- 雙 重指標
- 指 標與字串
- 命 令列引數
- 參 考(Reference)
- 函式
程式中超過兩次以上重複使用的程式碼,可以考慮將之定義為函式,以便重覆呼叫使用,降低相同程式片段的維護成本。
先簡介一些與函式定義相關的幾個語法,並談談幾個變數可視範圍的議題。
- 函 式簡介
- 行 內涵式(Inline function)
- 預 設引數
- 重 載函式 (Overloaded function)
- 變數可視範 圍(Scope)
遞迴呼叫、傳值、傳址、傳參考等,這些議題在函式的使用上關乎執行資源的使用與效率問題。
- 遞 迴(Recursion)
- 參數的傳 值、傳參考
- return 的傳值、傳參考
- 不定長度 引數(Variable-length argument)
- 函 式指標
- 物件基礎
以物件為基礎的程式設計,將程式中互動的單元視為一個個的物件。
封裝物件資訊是第一步,您要瞭解如何使用類別定義物件,像是定義物件的屬性、行為等等,類別是建構物件 時所依賴的規格書。
- 簡介 類別(Class)
- 建 構函式、解構函 式
- auto_ptr 自動管理配置資源
- const 與 mutable
- friend 函式、friend 類別
- 物 件指標
- this 指標
- static 成員
- 封裝的進階議題
一些有關於指標、運算子重載、特殊型態類別的相關議題。
- 巢 狀類別(Nested classes)
- 區 域類別(Local classes)
- 成 員函式指標 (Pointer to member function)
- 靜 態類別成員指標 (Pointer to static class member)
- 重 載運算子
- 使用 friend 函式重載運算子
- 複製建構函 式、物件的指定
- 使用者自訂型態 轉換(User-Defined Conversions)
- 列舉 (Enumeration)
- Union
- 位元 欄位(Bit-field)
- 物件導向
- 以物件為基礎作延伸,多型(Polymorphism)操作為設計時的核心,於執行時期 動態繫結(Dynamic binding)以決定物件的行為。
您可以繼承某個(父)類別的定義並加以擴充,而制訂出一個新的(子)類別定義。
- 公 開(public)繼承
- 受 保護的 (protected)成員
- 成員函式的重新 定義
- 繼承後的建構函 式與解構函式
- 保護 (protected)繼承、私用 (private)繼承
- 多型(Polymorphism)
多型操作在物件 導向設計中伴演著極重要的角色,使用的適當與否,足以 影響程式的架構與未來的可維護性。
- 虛 擬函式(Virtual function)
- 純 虛擬函式、抽象類別 (Abstract class)
- 執行時期型態 資訊(RTTI)
- 使 用 dynamic_cast
- 多 重繼承(一)
- 多 重繼承(二)
- 虛 擬繼承 (Virtual Inheritance)
- 例外處理(Exception Handling)
例外(Exception)是程式執行時期可偵測到的異常狀況,C++的例外處理包括兩部份:例外的丟出(throw)與例外的捕捉(catch)與處 理。
- 簡 介例外處理
- 自 訂例外類別
- 標 準例外類別
- 例 外規格 (Exception Specifications)
- 範本(Template)、名稱空間(Namespace)
範本(Template)提供被參數化的型態(Parameterized Types)功能,將型態相依與非型態相依的演算法分離開來;名稱空間則提供一個名稱管理容器,減低名稱衝突的機會發生。
- 函 式 範本(Function template)
- 類 別 範本(Class template)
- 名稱空 間(Namespace)
- 輸入/輸出
來看看 C++ 中如何處理輸入/輸出,像是格式控制、檔案 I/O 等。
首先來看看基本的格式控制,以及 << 、 >> 運算子的重載。
- I/O 格式控制器
- I/O 格式化旗標
- 重 載 << 運算子
- 重 載 >> 運算子
- 檔案 I/O
檔案的輸出輸入是 I/O 的基本,為認識 I/O 的入門必學。
未 格式化檔案 I/O
- 格 式化檔案 I/O
- 二 進位檔案 I/O
- get 指標與 put 指標
- 隨 機存取檔案
- 附錄
- C+ +爸爸(Bjarne Stroustrup)給C++初學者的信
- C+ +語言常見問題解答
- C/C ++的標準 函式庫查詢
- Complete C++ language tutorial
- C Programming.com
|
0
意見
張貼留言