it技术指南:www.itedus.com
  • 信息订阅

IT指南

  • TNT五分钟问卷赢IPOD
  • 贝塔斯曼
  • 广告联盟
  • No pay, More gain!
  • 单价15元-网络广告平台
  • 注册阿里妈妈赚广告费
  • 首页
  • 新闻资讯
  • 网页制作
  • 软件使用
  • 操作系统
  • 软件编程
  • 网络编程
  • 图象处理
  • 网站欣赏
  • 数据库
  • 认证考试
  • 站长知识
正在浏览栏目导航:首页 > 软件编程 > C/C++ >

C++反射机制及其应用

时间:2008-01-08 15:09:31   来源:itedus.com  作者:it爱好者

总所周知,hibernate依赖于JAVA的反射机制,从配置文件中动态生成对象,那么我的话题是用C++如何效仿hibernate实现对象持久化?在此简单探讨一下本人的研究,呵呵 1)可行性: 既然JAVA有专门的反射类,其实现也一定是玩内存,只是JAVA封装了内存操作。C++是操作内存的语言,自然可以实现JAVA能实现的东西,所以C++实现动态生成对象也就是可行的了,呵呵 2)实现方案: 基本反射: 大家都知道,内存中的对象无非就是在内存中的一块空间,对象指针就是内存中对象的起始,对象的成员依次按照空间排列,所以C++对象反射无非就是先声明一块内存空间,然后逐个将对象的成员变量填入,维护一个对象地址及其成员变量的信息即可(包括变量的地址,类型,名称、属性等),至于get和set方法,实现的办法就容易了,可以动态申请一块空间,存放get和set函数的代码,也可以由反射机制提供模拟函数的办法,直接操作内存,模拟实现get和set的方法,这样,对象反射机制就初步实现了,呵呵 缓存中的对象图: hibernate的session对象缓冲中存放的是一张对象图,也就是各种对象及其关系,那么C++在内存如何实现这种对象图?其实也不难,可以在内存中维护一张类似的关系表,体现出对象的各种关系,并提供对象导航的方法,就可以了,其实这个玩的是逻辑了,反倒容易了,呵呵 对象持久化: 和hibernate类似,建立缓存,得到对象的快照,然后把更新后对象和原快照对比,选出变化后的变量进行数据库操作,呵呵 对象-关系映射: 有了技术实现方案,这个就可以仿照hibernate了,呵呵 3)C++实现反射的应用及问题: 1 C++实现对象持久化有何应用:其实我觉得好像应用不大:) 不过在一些频繁操作数据库的场合可能有应用,比如C++的服务器,例如游戏服务器或者流媒体服务器等,呵呵 2 C++的一个问题:C++如何从程序级别实现数据库的事务操作?

关键字:c++,java
关闭此页
上一篇:下面没有链接了
下一篇:下面没有链接了

相关文章

     ·Sun认为C#不会替代Java   (2007-12-12)
     ·Java线程的深入探讨  (2007-12-12)
     ·Flash与JavaScript信息交互  (2007-11-29)
     ·关于 JavaScript 和 Flash 间的通  (2007-11-29)
     ·六大代码问题检验你的Java知识  (2007-11-14)
     ·Java 常用API文档  (2007-11-14)
     ·Java程序性能和速度优化实例  (2007-11-14)
     ·将JAVA编译为EXE的几种方法  (2007-11-14)
     ·Java SE 6入门之脚本引擎加大程序  (2007-11-14)
     ·Java多核线程笔记-volatile的原理  (2007-11-14)
本栏目推荐
  • C++反射机制及其应用

排行榜

  • 1C++反射机制及其应用

最新信息

  • C++反射机制及其应用
关于站点 - 广告服务 - 联系我们 - 返回顶部
Copyright © 2007 www.itedus.com . All rights reserved.QQ群:8814225
如果碰到相关技术问题可以联系我们,原创相关问题请与站长及时联系.鄂ICP备07005792号