導航:首頁 > 編程知識 > 怎麼做到面向對象編程

怎麼做到面向對象編程

發布時間:2023-08-26 16:46:38

A. 如何用C語言實現面向對象

可以通過以下方法實現面向對象:

1、封裝

封裝就是把數據和方法打包到一個類裡面。其實C語言編程者應該都已經接觸過了,C 標准庫 中的 fopen(), fclose(), fread(), fwrite()等函數的操作對象就是 FILE。

數據內容就是 FILE,數據的讀寫操作就是 fread()、fwrite(),fopen() 類比於構造函數,fclose() 就是析構函數。

2、繼承

繼承就是基於現有的一個類去定義一個新類,這樣有助於重用代碼,更好的組織代碼。在 C 語言裡面,去實現單繼承也非常簡單,只要把基類放到繼承類的第一個數據成員的位置就行了。

例如,我們現在要創建一個 Rectangle 類,我們只要繼承 Shape 類已經存在的屬性和操作,再添加不同於 Shape 的屬性和操作到 Rectangle 中。

3、多態 C++

語言實現多態就是使用虛函數。在 C 語言裡面,也可以實現多態。 現在,我們又要增加一個圓形,並且在 Shape 要擴展功能,我們要增加 area() 和 draw() 函數。

但是 Shape 相當於抽象類,不知道怎麼去計算自己的面積,更不知道怎麼去畫出來自己。而且,矩形和圓形的面積計算方式和幾何圖像也是不一樣的。

4、虛表和虛指針

虛表(Virtual Table)是這個類所有虛函數的函數指針的集合。

虛指針(Virtual Pointer)是一個指向虛表的指針。這個虛指針必須存在於每個對象實例中,會被所有子類繼承。

5、在構造函數中設置vptr

在每一個對象實例中,vptr 必須被初始化指向其 vtbl。最好的初始化位置就是在類的構造函數中。

事實上,在構造函數中,C++ 編譯器隱式的創建了一個初始化的vptr。在 C 語言裡面, 我們必須顯示的初始化vptr。下面就展示一下,在 Shape 的構造函數裡面,如何去初始化這個 vptr。

閱讀全文

與怎麼做到面向對象編程相關的資料

熱點內容
ps文件夾圖片加logo 瀏覽:513
上傳視頻網站需要多少錢 瀏覽:762
oracle修改資料庫實例名 瀏覽:591
java修改jar包 瀏覽:330
環保檢查都檢查什麼內容及文件 瀏覽:328
電腦上保存的文件消失 瀏覽:462
蘋果手機在哪查找文件 瀏覽:242
果園澆水哪個app最快 瀏覽:424
matlab訪問excel中文件 瀏覽:237
手機qq如何編輯文件在哪裡設置密碼 瀏覽:473
qq卸載過後之前的文件都找不到了 瀏覽:586
如何在ppt中做動態數據大屏 瀏覽:272
火狐上傳不了文件夾 瀏覽:897
神州a460設置開機密碼 瀏覽:615
linux更改系統版本 瀏覽:463
美行車載導航路徑文件 瀏覽:417
如何搭建網站的用戶中心 瀏覽:424
u大師找不到isos鏡像文件 瀏覽:408
小象編程的草稿都存在哪裡 瀏覽:877
重要文件關機後找不到了怎麼辦 瀏覽:293

友情鏈接