用统一的一个结构管理动态创建

#define RUN_TIME(classname) (&classname::runtime)

#define DECLARE_DYNAMIC()
public:
static RUNTIME runtime;
virtual char *GetClassName();
virtual char *GetBaseClassName();
static CObject *MyCreate();

#define IMPLEMENT_DYNAMIC(theclass, baseclass)\

RUNTIME theclass::runtime = {#theclass, &baseclass::runtime, theclass::MyCreate};
char *theclass::GetClassName()
{
  return theclass::runtime.classname;
}
char *theclass::GetBaseClassName()
{
  return theclass::runtime.Baseruntime->classname;
}
CObject * theclass::MyCreate()
{
  return new theclass;
}

typedef struct _RUNTIME

{

  char *classname;

  struct _RUNTIME *Baseruntime;

  CObject *(*pfnCreate)();

  CObject *Create();

}RUNTIME;

CObject * _RUNTIME::Create()

{

  return new CObject;

}

宏替换:在预编译阶段,对我们源程序文本进行处理。动态创建机制,实际是一种预编译替换机制

编译阶段:我们的源程序将不再发生任何改变。

时间: 2024-10-13 02:07:40

用统一的一个结构管理动态创建的相关文章

一个简易的动态创建层

<!DOCTYPE html><html><head> <meta charset="UTF-8"> <title></title> <style type="text/css"> body,div,input{margin:0;padding:0;font-family:"微软雅黑"; font-size:14px;} html,body{width:100%;

使用Jquery向一个空白网页动态创建一个iframe,及嵌入页面,和向嵌入页面传参

[csharp] view plaincopyprint?using Microsoft.VisualBasic; using System; using System.Collections; using System.Collections.Generic; using System.Data; using System.Diagnostics; using System.Collections.Specialized; using Microsoft.JScript; namespace

c语言 结构体动态创建

1 #include<stdio.h> 2 #include<malloc.h> 3 struct Student 4 { 5 int num; 6 int total; 7 char name[20]; 8 float score[3]; 9 }; 10 11 int main() 12 { 13 int N,i,j; 14 printf("Please input N:"); 15 scanf("%d",&N); 16 struc

使用DOM动态创建标签

本文是参考<javascript Dom 编程艺术>第八章的内容所写,用到的知识点,就是关于创建平稳的web页面. 使用DOM方法: getElementById() getElementsByTagName() getAttribute() setAttribute() createElement() createTextNode() appendChild() 首先网页只是一段简单的html,含有部分复杂的标签. <abbr>用于缩写,<blockquote>引用.

Qt Quick 组件和动态创建的对象具体的解释

在<Qt Quick 事件处理之信号与槽>一文中介绍自己定义信号时,举了一个简单的样例.定义了一个颜色选择组件,当用户在组建内点击鼠标时,该组件会发出一个携带颜色值的信号,当时我使用 Connections 对象连接到组件的 colorPicked 信号,改变文本的颜色. 当时用到的 Component . Loader 两个特性,一直没来得及介绍,可能非常多人都还在雾里看花呢. 这次呢.我们就来仔细致细地把他们讲清楚. 版权全部 foruok ,转载请注明出处:http://blog.csd

Qt on Android: Qt Quick 组件与对象动态创建详解

在<Qt on Android: Qt Quick 事件处理之信号与槽>一文中介绍自定义信号时,举了一个简单的例子,定义了一个颜色选择组件,当用户在组建内点击鼠标时,该组件会发出一个携带颜色值的信号,当时我使用 Connections 对象连接到组件的 colorPicked 信号,改变文本的颜色. 当时用到的 Component . Loader 两个特性,一直没来得及介绍,可能很多人都还在雾里看花呢.这次呢,我们就来仔仔细细地把他们讲清楚. 请给我的参赛文章<Qt on Androi

OC中动态创建可变数组的问题.有一个数组,数组中有13个元素,先将该数组进行分组,每3个元素为一组,分为若干组,最后用一个数组统一管理这些分组.(要动态创建数组).两种方法

<span style="font-size:24px;">//////第一种方法 // NSMutableArray *arr = [NSMutableArray array]; // for (int i = 0; i < 13; i ++) { // [arr addObject:[NSString stringWithFormat:@"lanou%d",i + 1]]; // } // NSLog(@"%@",arr);

第一个Polymer应用 - (1)创建APP结构

原文链接: Step 1: Creating the app structure翻译日期: 2014年7月5日翻译人员: 铁锚 在本节中,将使用一些预先构建好的Polymer元素来创建基本的应用程序结构,包括一个工具栏(toolbar)和一些选项卡(tabs). 编辑 index.html 文件进入根目录下面的 starter 目录中, 使用你喜欢的文本编辑器打开 index.html 文件, 文件的初始内容大致如下所示: <!doctype html> <html> <he

weblogic管理2 - 创建并启动一个managed server

创建一个managed server. 1.  进入网页console管理页面,如:http://10.100.25.14:7001/console     , 先点击->服务器 (红色标记框),再点击->锁定并编辑  . 2.   点击-> 新建 3. 填好相关内容 (注意端口不要与admin server冲突) , 点击-> 下一步 4.  点击-> 完成 *********至此一个managed server已经创建完成. -----------------------