欧美大屁股bbbbxxxx,狼人大香伊蕉国产www亚洲,男ji大巴进入女人的视频小说,男人把ji大巴放进女人免费视频,免费情侣作爱视频

歡迎來到入門教程網(wǎng)!

C語言

當(dāng)前位置:主頁 > 軟件編程 > C語言 >

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

來源:本站原創(chuàng)|時(shí)間:2020-01-10|欄目:C語言|點(diǎn)擊: 次

研究了一下,總算勉強(qiáng)能夠融會(huì)貫通了
c寫成OOP還蠻有樂趣的
編譯環(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;
}

上一篇:用c++實(shí)現(xiàn)將文本每個(gè)單詞首字母轉(zhuǎn)換為大寫

欄    目:C語言

下一篇:如何用C++實(shí)現(xiàn)雙向循環(huán)鏈表

本文標(biāo)題:利用C語言實(shí)踐OOP,以及new,delete的深入分析

本文地址:http://mengdiqiu.com.cn/a1/Cyuyan/4382.html

網(wǎng)頁制作CMS教程網(wǎng)絡(luò)編程軟件編程腳本語言數(shù)據(jù)庫服務(wù)器

如果侵犯了您的權(quán)利,請(qǐng)與我們聯(lián)系,我們將在24小時(shí)內(nèi)進(jìn)行處理、任何非本站因素導(dǎo)致的法律后果,本站均不負(fù)任何責(zé)任。

聯(lián)系QQ:835971066 | 郵箱:835971066#qq.com(#換成@)

Copyright © 2002-2020 腳本教程網(wǎng) 版權(quán)所有