C語言大型軟體設計的物件導向

CSDN學院發表於2020-04-04

C 原本是程式導向的語言,自身沒有內建物件導向的特性,但我們還是可以利用 C 語言本身已有的特性來實現物件導向的一些基本特徵。

今天我們給大家推薦一門《C語言大型軟體設計的物件導向》課程,11月16日(下週四)宋寶華老師將線上直播,與您討論 C 語言面嚮物件的技術難點、疑點。


1.物件導向的概念


物件導向的語言-


與已往的各種語言的根本不同是,它的設計出發點就是為了更能直接的描述問題域中客觀存在的事物。


一切皆物件,物件來源於生活高於生活。


將功能封裝進物件,強調具備了功能的物件。


物件導向是基於程式導向的。


是一種符合人們思考習慣的思想,可以將複雜的事情簡單化,將程式設計師從執行者轉換成了指揮者


物件導向的特徵:


①封裝(encapsulation)。封裝是指利用抽象資料型別將資料和基於資料的操作封裝在一起,使其構成一個不可分割的獨立實體,資料被保護在抽象資料型別的內部,儘可能地隱藏內部的細節,只保留一些對外介面使之與外部發生聯絡。封裝有四大好處:

  • 良好的封裝能夠減少耦合。
  • 類內部的結構可以自由修改。
  • 可以對成員進行更精確的控制。
  • 隱藏資訊,實現細節。

②繼承(inheritance)。繼承是使用已存在的類的定義作為基礎建立新類的技術,新類的定義可以增加新的資料或新的功能,也可以用父類的功能,但不能選擇性地繼承父類。


③多型(polymorphism)。所謂多型就是指程式中定義的引用變數所指向的具體型別和通過該引用變數發出的方法呼叫在程式設計時並不確定,而是在程式執行期間才確定,即一個引用變數倒底會指向哪個類的例項物件,該引用變數發出的方法呼叫到底是哪個類中實現的方法,必須在由程式執行期間才能決定。



2.C語言實現封裝、函式指標


在C語言當中,是不存在封裝這一個特性的,我們要實現它,我們可以藉助兩個方法:

① 利用C語言中的標頭檔案,在標頭檔案中進行宣告,在C檔案中對它進行定義,這樣就可以隱藏內部資訊,使用者只能看到介面和公開的資訊,無法知道物件所佔記憶體等。

② 第二種方法是把私有的資訊放在一個不透明的私有變數或者結構體當中,只有類的實現程式碼才知道priv或者結構體的真正定義。 

在程式執行中,函式程式碼是程式的演算法指令部分,它們和陣列一樣也佔用儲存空間,都有相應的地址。可以使用指標變數指向陣列的首地址,也可以使用指標變數指向函式程式碼的首地址,指向函式程式碼首地址的指標變數稱為函式指標。函式指標是通過函式名及有關引數進行呼叫的。

3、從一個命令解析器的案例開始

a. 過程化程式設計

b. 採用封裝思想設計

4.一個嵌入式圖形框架的C物件導向


5.C語言實現繼承和多型,模擬虛擬函式

6.提煉軟體的中間層

7.綜合案例,物件式思維鍛鍊

更多細節,您可以點選下方課程入口進入瞭解:


<<<<<<<<<<<<<<<<<<<<<線上系列課>>>>>>>>>>>>>>>>>>>>

C語言大型軟體設計的物件導向

講師介紹:

宋寶華老師有10幾年的Linux開發經驗。他長期在著名跨國企業擔任一線工程師和系統架構師,編寫大量的Linux程式碼,並負責稽核其他同事的程式碼。他是Linux的活躍開發者,在Linux主線核心提交了4萬行以上的程式碼和幾百個補丁,曾擔任一ARM SoC在Linux社群的maintainer工作。他也是China-pub 2008年度“十大暢銷經典”,“十佳原創”圖書《Linux裝置驅動開發詳解》的作者,他曾為許多知名企業提供嵌入式Linux企業培訓和技術服務,受到企業廣泛好評。

課程介紹:

C語言程式碼一旦達到一定規模,就特別強調良好的架構設計,以保證程式碼的可讀性好、程式碼簡潔以及可複用。此時,軟體設計師勢必要用C語言來做物件導向的設計。不能克服物件導向這一關,也是很多人無法讀懂Linux核心、驅動等架構比較龐大的軟體的主要技術壁壘之一,因為這些軟體裡面充滿了物件式的設計。 本課程以案例來詳細講解,用C語言如何設計物件導向的程式。

課程特色:專屬答疑+課件資料提供+視訊無限時回放+VIP交流群

開課時間:隨到隨學,自由支配



相關文章