最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

利用C語(yǔ)言實(shí)踐OOP,以及new,delete的深入分析

 更新時(shí)間:2013年05月31日 10:34:54   作者:  
本篇文章是對(duì)用C語(yǔ)言實(shí)踐OOP,new,delete進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
研究了一下,總算勉強(qiáng)能夠融會(huì)貫通了
c寫成OOP還蠻有樂(lè)趣的
編譯環(huán)境:Xcode3.2.3+gcc4.2
復(fù)制代碼 代碼如下:

#ifndef OBJECT_H
#define OBJECT_H
typedef void (*Execute)(struct Object *a_This);
typedef struct Object* (*Allocate)();
typedef struct _Object_Vtable
{
 char *name;
 Execute exe;
}Object_Vtable;
typedef struct _baseCmd
{
 Object_Vtable vtable;
}BaseCmd;
// --- for common --- //
BaseCmd* new(Allocate newObj);
void delete(void * item);
// --------------------------//
// --- for BaseCmd --- //
BaseCmd* NewBaseCmd();
void Exe_BaseCmd(BaseCmd *a_This);
// --------------------------//
// --- for HomeCmd --- //
typedef struct _homeCmd
{
 Object_Vtable vtable;
}HomeCmd;
BaseCmd* NewHomeCmd();
void Exe_HomeCmd(HomeCmd *a_This);
// --------------------------//
#endif

復(fù)制代碼 代碼如下:

#include "Cloud.h"
// --- for common --- //
BaseCmd* new(Allocate newObj)
{
 BaseCmd * obj = newObj();
 return obj;
}
void delete(void * item)
{
 free(item);
}
// --------------------------//
// --- for BaseCmd --- //
BaseCmd* NewBaseCmd()
{
 BaseCmd * cmd = malloc(sizeof(BaseCmd));
 cmd->vtable.name = "Cloud";
 cmd->vtable.exe = Exe_BaseCmd;
 return cmd;
}
void Exe_BaseCmd(BaseCmd *a_This)
{
 printf("do base command = %s/n",a_This->vtable.name);
}
// --------------------------//
// --- for HomeCmd --- //
BaseCmd* NewHomeCmd()
{
 HomeCmd * cmd = malloc(sizeof(HomeCmd));
 cmd->vtable.name = "Home";
 cmd->vtable.exe = Exe_HomeCmd;
 return cmd;
}
void Exe_HomeCmd(HomeCmd *a_This)
{
 printf("do home command = %s/n",a_This->vtable.name);
}
// --------------------------//

復(fù)制代碼 代碼如下:

#include <stdio.h>
#include <stdlib.h>
#include "Cloud.h"
int main (int argc, const char * argv[])
{

 BaseCmd* cmd = new(NewBaseCmd);
 cmd->vtable.exe(cmd);
 delete(cmd);

 BaseCmd* cmd2 = new(NewHomeCmd);
 cmd2->vtable.exe(cmd2);
 delete(cmd2);

    return 0;
}

相關(guān)文章

  • C 語(yǔ)言中strstr函數(shù)實(shí)例詳解

    C 語(yǔ)言中strstr函數(shù)實(shí)例詳解

    這篇文章主要介紹了C 語(yǔ)言中strstr函數(shù)實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下
    2017-07-07
  • C++類與對(duì)象深入之運(yùn)算符重載與const及初始化列表詳解

    C++類與對(duì)象深入之運(yùn)算符重載與const及初始化列表詳解

    運(yùn)算符是程序中最最常見的操作,例如對(duì)于內(nèi)置類型的賦值我們直接使用=賦值即可,因?yàn)檫@些編譯器已經(jīng)幫我們做好了,但是對(duì)象的賦值呢?能直接賦值嗎
    2022-06-06
  • C++中實(shí)現(xiàn)矩陣的加法和乘法實(shí)例

    C++中實(shí)現(xiàn)矩陣的加法和乘法實(shí)例

    這篇文章主要介紹了C++中實(shí)現(xiàn)矩陣的加法和乘法實(shí)例的相關(guān)資料,需要的朋友可以參考下
    2017-03-03
  • VSCode配置C/C++并添加非工作區(qū)頭文件的方法

    VSCode配置C/C++并添加非工作區(qū)頭文件的方法

    這篇文章主要介紹了VSCode配置C/C++并添加非工作區(qū)頭文件的方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-03-03
  • 如何在Qt中實(shí)現(xiàn)關(guān)于Json?的操作

    如何在Qt中實(shí)現(xiàn)關(guān)于Json?的操作

    JSON是一種輕量級(jí)數(shù)據(jù)交換格式,常用于客戶端和服務(wù)端的數(shù)據(jù)交互,不依賴于編程語(yǔ)言,在很多編程語(yǔ)言中都可以使用JSON,這篇文章主要介紹了在Qt中實(shí)現(xiàn)關(guān)于Json的操作,需要的朋友可以參考下
    2023-08-08
  • Qt讀寫XML文件的方法詳解(含源碼+注釋)

    Qt讀寫XML文件的方法詳解(含源碼+注釋)

    XML文件可以用來(lái)存儲(chǔ)項(xiàng)目中的數(shù)據(jù),它相當(dāng)于一個(gè)簡(jiǎn)單的數(shù)據(jù)庫(kù),下面這篇文章主要給大家介紹了關(guān)于Qt讀寫XML文件(含源碼+注釋)的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-10-10
  • C語(yǔ)言超詳細(xì)講解文件的操作

    C語(yǔ)言超詳細(xì)講解文件的操作

    C語(yǔ)言文件操作的方法有很多,函數(shù)也有很多你知道哪些呢?下面是小編為大家?guī)?lái)的C語(yǔ)言文件操作的方法,歡迎閱讀
    2022-04-04
  • Opencv提取連通區(qū)域輪廓的方法

    Opencv提取連通區(qū)域輪廓的方法

    這篇文章主要為大家詳細(xì)介紹了Opencv提取連通區(qū)域輪廓的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • 詳解PID控制器原理

    詳解PID控制器原理

    什么是 PID?它是一種在編程中使用的基本方法,如果正確調(diào)整,可以令人難以置信的有效和準(zhǔn)確,PID代表比例積分微分,3個(gè)單獨(dú)的部分連接在一起,雖然有時(shí)你不需要三個(gè)都使用。例如,您可以改為有P控制,PI控制或PD控制
    2021-06-06
  • C++中函數(shù)模板與類模板的簡(jiǎn)單使用及區(qū)別介紹

    C++中函數(shù)模板與類模板的簡(jiǎn)單使用及區(qū)別介紹

    這篇文章介紹了C++中的模板機(jī)制,包括函數(shù)模板和類模板的概念、語(yǔ)法和實(shí)際應(yīng)用,函數(shù)模板通過(guò)類型參數(shù)實(shí)現(xiàn)泛型操作,而類模板允許創(chuàng)建可處理多種數(shù)據(jù)類型的類,文章還討論了模板的關(guān)鍵區(qū)別、注意事項(xiàng)以及它們?cè)趯?shí)際編程中的應(yīng)用,感興趣的朋友一起看看吧
    2025-03-03

最新評(píng)論

两当县| 江华| 凤翔县| 德惠市| 武汉市| 黎平县| 泽州县| 钟祥市| 兴安县| 高阳县| 本溪市| 宜君县| 楚雄市| 桐庐县| 阆中市| 封丘县| 仙桃市| 桃园县| 定远县| 沅陵县| 淮安市| 山西省| 沭阳县| 盐边县| 航空| 宜宾县| 清丰县| 中西区| 永福县| 仁怀市| 滦平县| 虎林市| 松溪县| 新津县| 廉江市| 资兴市| 商水县| 宁陵县| 靖安县| 晴隆县| 信阳市|