使用 MFC 串行化数据和 C++ 对象
2009-03-07 20:02:29 来源:WEB开发网这样就将数据写入了文件,选择“File”菜单中的“Save”或者“Save as”即可完成数据的串行化。 如果没有保存数据,退出程序是会提示用户是否保存修改过的数据。具体细节请参考源代码。
串行化C++对象
——例子程序:PHN
创建一个新的单文档 SDI 应用,视图类选择 CFormView,以便可以有窗口中用户可以输入。
声明一个要串行化的 C++ 类。如 CPhone;
文档类的处理:
在文档类中声明一个 MFC CObList 类对象,这个类很有用,功能也很强,用它可以很轻松地维护 C++ 对象列表,例如 添加、删除列表元素等。在文档类的头文件中作如下声明:
CObList m_PhoneList;
上面的声明可以是 public 类型,这样其它类可以直接访问它。也可以是 private 类型,这样就必须声明一个公共的访问函数,比如:GetPhoneList(),这个函数能返回 m_PhoneList 的地址。
通常可以在文档类的 OnNewDocument()函数中进行数据初始化;
// Create a CPhone Object
CPhone* pPhone = new CPhone();
pPhone->m_Name = "";
pPhone->m_Phone = "";
// Add new object to the m_PhoneList list
m_PhoneList.AddHead(pPhone);
在此 CPhone 类的成员变量的初始化不是必须的,因为 CPhone 的构造函数已经完成了这个工作。AddHead()函数向 m_PhoneList 列表添加刚创建的 CPhone 对象。所以,无论什么时候创建新文档(如启动应用程序)都会向 m_PhoneList 列表中添加一个空的 CPhone 对象。注意类 CObList 的成员函数 AddHead() 是向列表的“头部”添加对象(列表的开始),所以参数是想要添加的对象的地址。
更多精彩
赞助商链接