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

怎麼做到面向對象編程

發布時間: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。

閱讀全文

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

熱點內容
為什麼南寧app不能查公積金了 瀏覽:849
微信秒加人 瀏覽:351
數控車R3半圓弧怎麼編程序 瀏覽:351
網路互聯設備ppt 瀏覽:881
蘋果5s更新後通訊錄怎麼都沒了 瀏覽:691
如何讓一列數據每個都加一個空格 瀏覽:684
怎麼修改excel自動恢復文件位置 瀏覽:73
怎麼在查看寬頻密碼 瀏覽:4
哪個廠需要數據統計 瀏覽:166
5s出現黑蘋果手機 瀏覽:829
不能插u盤不能上網怎麼傳文件 瀏覽:946
怎麼用編程求一個數的因子 瀏覽:64
幻影粒子圖文教程 瀏覽:899
mp3音樂播放器里有哪些文件夾 瀏覽:346
國內主流資料庫網站 瀏覽:941
移動硬碟文件夾許可權設置 瀏覽:761
雨林木風win732位安裝教程 瀏覽:234
怎樣開啟數據網路連接不上 瀏覽:586
安卓logo多少錢 瀏覽:282
為什麼app出現購買 瀏覽:583

友情鏈接