91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

iOS開發篇——C 實現面 向對象編程介紹

發布時間:2020-08-01 14:37:41 來源:網絡 閱讀:532 作者:藍鷗易薈云 欄目:移動開發

藍鷗iOS培訓講師推薦:要想實現對象編程,就要用C語言來實現,那么今天寫一點關于用C實現面向對象編程的方法。主要有兩方面類的封閉實現和C繼承的實現:

一、類的封閉實現

1、類的定義,其中CLASS()是lw_oopc_kc.h中定義的宏#include"lw_oopc_kc.h"CLASS()

{inta;void(*init)(void*,int);void(*put)(void*);};

2、成員函數的實現類的封裝實質是用借用struct結構體,用函數指針來表示C中類的方法(成員函數)。下面是給類A的方法寫實體函數,如例:

iOS開發篇——C 實現面 向對象編程介紹

3、類(結構體)中的函數指針與實現函數的關聯通過下面的宏把類的方法(函數指針)和實現函數關聯:CTOR(A)

FUNCTION_SETTING(init,init_A);FUNCTION_SETTING(put,put_A);END_CTOR4、對象的定義、構造和初始化如果沒有這個連接處理,類(實際是struct)中的函數指針就沒有函數的功能。函數init_A()是XXX_A()的命名模式,是指明XXX_A()屬于A類的函數,方便程序的理解和維護。下面就是要構造類。在C中這個工作系統自動調用構造函數實現而在C中,這個過程智能顯示調用來實現。借助lw_oopc_kc.h(或"lw_oopc.h")可以利用宏CLASS_CTOR(class,obj)來將定義的對象進行構造,使之有數據的同時有方法的功能。實例化一個對象分為3步,如下:

//1、定義對象CLASS_CTOR(A,aa1);
//2、構造對象—使得函數指針和函數關聯aa1.init(&aa1,10);
//3、初始化對象的成員變量,注意要:&aa1(取地址)

二、C繼承的實現:

1、子類的定義:在類的開頭借用已經定義的類進行定義一個變量,為了更簡單、清楚,表明是繼承,增加一個宏定義:#defineINHERIT(BASE)IMPLEMENTS(BASE),所以以類B繼承類A為例子如下:CLASS(B){INHERIT(A);

//繼承A類intb;
//子類的成員void(*init)(void*,intx);void(*put)(void*);};

2、子類的成員函數實現,為了方便辨別,類B的成員函數帶后綴‘_B’voidinit_B(void*t,intx,

inty)

{B*cthis=(B*)t;CLASS_CTOR(A,cthis->A);//——繼承的基類在這里構造,對象是cthis

->Acthis->A.init(&cthis->A,x);//——</SPA<div>

每段程序后面都有注釋,就是為了能夠更好的讓同學們理解本節所講的內容,也希望所寫的東西能夠幫助到同學們。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

达孜县| 梓潼县| 炎陵县| 林口县| 利津县| 吉安市| 南安市| 焉耆| 新乡市| 宁晋县| 府谷县| 鹰潭市| 乌兰浩特市| 阳朔县| 陵川县| 安远县| 株洲市| 鲁甸县| 阿拉善左旗| 盐边县| 庄浪县| 博湖县| 句容市| 抚顺县| 喀喇沁旗| 南京市| 洛宁县| 鹤峰县| 东兴市| 合川市| 广水市| 启东市| 临猗县| 馆陶县| 卫辉市| 乌兰察布市| 丹东市| 琼结县| 罗源县| 阿拉尔市| 嘉禾县|