怎么样实现永久对象?

Herbert 2000-01-18 03:42:00
加精
在进行面向对象的系统开发时,我们经常要用到“永久对象”这种东西。但是我看了很多资料也找不到能用什么方法来实现。各位高手们,请多多指教!
...全文
298 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
qxp 2000-04-23
  • 打赏
  • 举报
回复
永久对象是OO中一个非常复杂的问题
现有的系统有一些非常弱的支持,但远远还不够
土豆 2000-02-18
  • 打赏
  • 举报
回复
关注
blaise 2000-01-22
  • 打赏
  • 举报
回复
This is a big question:
Two ways,one easy one hard.
easy way:use MFC provided serilize functions.
hard way:use RTTI,run time type information.
In fact the easy way is also base on hard way,just MS take care of it for you.
BTW,RTTI is already the ANSI C++ standard,so feel free to use that.And u needn't relie on MFC which measn you can port it to NON MFC compiler,such like g++.
cottle 2000-01-20
  • 打赏
  • 举报
回复
持久对象的实质意义是在存储时保存对象的运行时信息,在读入时自动恢复对象的运行时信息,以保持对象的状态和行为与保存前一致。比如,一个保存有指向其它对象的指针的对象在存储时不仅要存储其自身,还要保存其相关对象和两者间的关系。
MFC为实现持久对象提供了简单的支持,就是使用DECLARE_SERIAL和IMPLEMENT_SERIAL宏。MSDN中有一篇技术文章详细讨论了这两个宏的使用及实现持久对象的一些考虑,文章的名字叫Persistent Object Data Format。
Herbert 2000-01-20
  • 打赏
  • 举报
回复
WHQ所说的方法我理解了,在此谢过!
不过我想实现的永久对象是这样的:
当我的应用程序开始运行时,读入各永久对象的数据,将各永久对象创建起来。但是一旦在程序运行的过程中有新的永久对象生成时或者任一永久对象的数据有改变时,都能够自动存储其自身。
另外,我也要谢谢cloud。不过我希望您能够推荐一本您认为最合适的书。
其他哪位高手有办法解决,也请大胆敕教。先谢了!
cloud 2000-01-20
  • 打赏
  • 举报
回复
《VC++6。0开发使用手册》(特版精品)第七章。
机械工业出版社出版。
netsky 2000-01-20
  • 打赏
  • 举报
回复
可以去看看候捷的《深入浅出MFC》,对"永久保存"有仿真。
WHQ 2000-01-18
  • 打赏
  • 举报
回复
实际上就是结构化的存贮,即在存贮对象的前面加上一些描述对象类型及结构的信息。比如你自己有一些类需要持久化,那你可以为每一个类定一个唯一的标识,并在存贮某类的一个对象时,先写入这个唯一的标识,然后再写入对象的数据,这样在读取时,对每一个读出的标识进行分析,得出后面的数据是何种类型,它们的组织结构是怎样的,然后就可在内存中重新创建这个对象了。
线性结构的持久化实现起来比较容易,但非线性结构——如树、图之类则麻烦得多。如果你不是有很特殊的要求,建议你直接采用现成的开发工具提供的方法,如MFC中的对象动态创建、OWL中的可流化对象等等。
cloud 2000-01-18
  • 打赏
  • 举报
回复
你试着看一看MFC的书籍,MFC对他进行了封装,由CArctive实现.
也可看看源代码.

69,368

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧