藍(lán)鷗iOS培訓(xùn)講師推薦:要想實(shí)現(xiàn)對(duì)象編程,就要用C語言來實(shí)現(xiàn),那么今天寫一點(diǎn)關(guān)于用C實(shí)現(xiàn)面向?qū)ο缶幊痰姆椒?。主要有兩方面類的封閉實(shí)現(xiàn)和C繼承的實(shí)現(xiàn):
一、類的封閉實(shí)現(xiàn)
1、類的定義,其中CLASS()是lw_oopc_kc.h中定義的宏#include"lw_oopc_kc.h"CLASS()
{inta;void(*init)(void*,int);void(*put)(void*);};
2、成員函數(shù)的實(shí)現(xiàn)類的封裝實(shí)質(zhì)是用借用struct結(jié)構(gòu)體,用函數(shù)指針來表示C中類的方法(成員函數(shù))。下面是給類A的方法寫實(shí)體函數(shù),如例:
3、類(結(jié)構(gòu)體)中的函數(shù)指針與實(shí)現(xiàn)函數(shù)的關(guān)聯(lián)通過下面的宏把類的方法(函數(shù)指針)和實(shí)現(xiàn)函數(shù)關(guān)聯(lián):CTOR(A)
FUNCTION_SETTING(init,init_A);FUNCTION_SETTING(put,put_A);END_CTOR4、對(duì)象的定義、構(gòu)造和初始化如果沒有這個(gè)連接處理,類(實(shí)際是struct)中的函數(shù)指針就沒有函數(shù)的功能。函數(shù)init_A()是XXX_A()的命名模式,是指明XXX_A()屬于A類的函數(shù),方便程序的理解和維護(hù)。下面就是要構(gòu)造類。在C中這個(gè)工作系統(tǒng)自動(dòng)調(diào)用構(gòu)造函數(shù)實(shí)現(xiàn)而在C中,這個(gè)過程智能顯示調(diào)用來實(shí)現(xiàn)。借助lw_oopc_kc.h(或"lw_oopc.h")可以利用宏CLASS_CTOR(class,obj)來將定義的對(duì)象進(jìn)行構(gòu)造,使之有數(shù)據(jù)的同時(shí)有方法的功能。實(shí)例化一個(gè)對(duì)象分為3步,如下:
//1、定義對(duì)象CLASS_CTOR(A,aa1);
//2、構(gòu)造對(duì)象—使得函數(shù)指針和函數(shù)關(guān)聯(lián)aa1.init(&aa1,10);
//3、初始化對(duì)象的成員變量,注意要:&aa1(取地址)
二、C繼承的實(shí)現(xiàn):
1、子類的定義:在類的開頭借用已經(jīng)定義的類進(jìn)行定義一個(gè)變量,為了更簡(jiǎn)單、清楚,表明是繼承,增加一個(gè)宏定義:#defineINHERIT(BASE)IMPLEMENTS(BASE),所以以類B繼承類A為例子如下:CLASS(B){INHERIT(A);
//繼承A類intb;
//子類的成員void(*init)(void*,intx);void(*put)(void*);};
2、子類的成員函數(shù)實(shí)現(xiàn),為了方便辨別,類B的成員函數(shù)帶后綴‘_B’voidinit_B(void*t,intx,
inty)
{B*cthis=(B*)t;CLASS_CTOR(A,cthis->A);//——繼承的基類在這里構(gòu)造,對(duì)象是cthis
->Acthis->A.init(&cthis->A,x);//——</SPA<div>
每段程序后面都有注釋,就是為了能夠更好的讓同學(xué)們理解本節(jié)所講的內(nèi)容,也希望所寫的東西能夠幫助到同學(xué)們。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。
網(wǎng)站標(biāo)題:iOS開發(fā)篇——C實(shí)現(xiàn)面向?qū)ο缶幊探榻B-創(chuàng)新互聯(lián)
網(wǎng)頁鏈接:http://sd-ha.com/article2/iphoc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站導(dǎo)航、網(wǎng)站設(shè)計(jì)公司、ChatGPT、移動(dòng)網(wǎng)站建設(shè)、軟件開發(fā)、全網(wǎng)營銷推廣
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容