gpt4 book ai didi

利用C语言实践OOP,以及new,delete的深入分析

转载 作者:qq735679552 更新时间:2022-09-28 22:32:09 25 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章利用C语言实践OOP,以及new,delete的深入分析由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

研究了一下,总算勉强能够融会贯通了 c写成OOP还蛮有乐趣的 编译环境:Xcode3.2.3+gcc4.2 。

复制代码 代码如下

#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 。

  。

复制代码 代码如下

#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); } // --------------------------// 。

  。

复制代码 代码如下

#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语言实践OOP,以及new,delete的深入分析

最后此篇关于利用C语言实践OOP,以及new,delete的深入分析的文章就讲到这里了,如果你想了解更多关于利用C语言实践OOP,以及new,delete的深入分析的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com