现在的位置: 首页 > 综合 > 正文

C++ Gossip学习笔记

2014年11月24日 ⁄ 综合 ⁄ 共 2845字 ⁄ 字号 评论关闭

From Gossip@caterpillar

語言技術:C++ Gossip

C++ 學習筆記 關於 C++ 的歷史無須我來介紹了,有興趣的可以用搜尋引擎來找出一堆談 C++ 歷史的,C++ 是個歷久不衰的程式語言,功能強大但入門不易,後期有很多的程式語言致力於擁有 C++ 大部份的功能並去除其不易掌握的部份,即使後期的程式語言如此之多,但 C++ 仍在程式語言工具中佔有一席之地。

這是我的 C++ 學習筆記第二個版本,主要的目的是將 之前的 .chm 文件 改為網頁格式,並重新看看有沒有什麼語法或觀念的錯誤,也藉此複習一下 C++,文件中所有的範例都是在 Dev C++ 4.9.9.2 中撰寫測試。


入門基礎

        學習程式語言第一件事,通常就是先作個簡單的程式來運行一下,並從瞭解程式語言的資料型態、變數與流程控制語法開始。

  • 資料型態與變數
        無論如何 先來個 "Hello! World!" 顯示一下程式執行結果,增加一點撰寫程式的信心!接著就耐心的瞭解一下 C++ 的資料型態,以認識一下變數、常數。
  • 運算
        程式的目的簡單的說就是運算、運算還是運算,加減乘除這類的動作是少不得的,在C++中提供運算功能的就是運算子(Operator)。
  • 流程控制
        流程控制語法是程式設計的基本,藉由各種條件判斷與迴圈重覆執行語法,您可以令您的程式因應不同的狀況而作出不同的回應。


進階型態

        陣列、字串、指標這幾種C++的進階型態相當常被使用,雖然看似複雜,但彼此之間互有相關,另外這邊也介紹一下C++中的列舉(Enumeration)型態。

  • 陣列(Array)
        各種型態的陣列各有其不同的用途,但無論如何,先從基本型態的一維陣列、二維陣列開始認識起。
  • 向量(Vector)
        C++提供了內建陣列的替代型態 vector,vector 可以如同陣列一般的操作,並記得自己的長度資訊,您也可以使用物件的方式來操作 vector 。
  • 字串(String)
        字串的本質是字元陣列,而在C++中還可以使用string類別來表現字串,兩者都有瞭解的必要。
  • 指標(Pointer)
        指標可指向一個記憶體位址,可對物件作間接操作,指標擁有型態,這用來告訴編譯器如何解釋記憶體空間的內容,以及每一次運算的大小。


函式

        程式中超過兩次以上重複使用的程式碼,可以考慮將之定義為函式,以便重覆呼叫使用,降低相同程式片段的維護成本。

  • 函式入門
        先簡介一些與函式定義相關的幾個語法,並談談幾個變數可視範圍的議題。
  • 進階議題
        遞迴呼叫、傳值、傳址、傳參考等,這些議題在函式的使用上關乎執行資源的使用與效率問題。


物件基礎

        以物件為基礎的程式設計,將程式中互動的單元視為一個個的物件。

  • 封裝(Encapsulation)
        封裝物件資訊是第一步,您要瞭解如何使用類別定義物件,像是定義物件的屬性、行為等等,類別是建構物件時所依賴的規格書。
        一些有關於指標、運算子重載、特殊型態類別的相關議題。


物件導向
以物件為基礎作延伸,多型(Polymorphism)操作為設計時的核心,於執行時期動態繫結(Dynamic binding)以決定物件的行為。
  • 繼承(Inheritance)
        您可以繼承某個(父)類別的定義並加以擴充,而制訂出一個新的(子)類別定義。
        多型操作在物件導向設計中伴演著極重要的角色,使用的適當與否,足以影響程式的架構與未來的可維護性。

例外處理(Exception Handling)

        例外(Exception)是程式執行時期可偵測到的異常狀況,C++的例外處理包括兩部份:例外的丟出(throw)與例外的捕捉(catch)與處理。

範本(Template)、名稱空間(Namespace)

        範本(Template)提供被參數化的型態(Parameterized Types)功能,將型態相依與非型態相依的演算法分離開來;名稱空間則提供一個名稱管理容器,減低名稱衝突的機會發生。



附錄

 

抱歉!评论已关闭.