我应该在哪里存储对象列表?
Posted
技术标签:
【中文标题】我应该在哪里存储对象列表?【英文标题】:Where should I store a list of objects? 【发布时间】:2018-04-17 05:52:19 【问题描述】:我有一个基类和两个派生类。我想在文件中写入和读取这些类的对象。我正在考虑使用虚拟函数来写入/读取数据,但我不知道应该将这些函数放在哪里。在基类中?当我将从文件中读取数据时,我会将指向对象的指针存储在向量中,但我想我不能拥有指向声明该向量的类的对象的指针向量。有人可以帮我解决这个问题吗?提前感谢您的任何建议。
【问题讨论】:
【参考方案1】:当您将对象写入文件时,您还必须存储一些信息,以便在以后再次读取对象时知道对象的类型/类;否则你将不知道要实例化哪个派生类。
一旦你解决了这个问题,你就可以决定以你想要的方式将对象存储在任何地方。
【讨论】:
【参考方案2】:据我了解您的问题,您有一个基类和两个派生类。所有这些你都想从一个文件中写入和读取,并且你想一次从这个对象中读取多个实例。
在我看来,你需要一个容器类,它负责阅读和写作。这意味着您实现了一个类,它将您的实例存储在一个向量中,然后可以将它们保存到磁盘并再次读取它们。
保存从同一基类继承的不同类型的类,还需要添加一个类型,在写入和读取过程中必须检查该类型,以正确处理存储的信息。
【讨论】:
以上是关于我应该在哪里存储对象列表?的主要内容,如果未能解决你的问题,请参考以下文章
在哪里存储 objectstore 和 vwsession 对象
如何在浏览器本地存储 Flutter Web 应用程序中保存对象列表
Eclipse RCP:我应该将模型对象保存在哪里以及它们如何与视图对话?