MFC 串行化实例

这篇博客探讨了C++中自定义类的串行化实现,通过`CAge`类展示了如何使用`CArchive`进行数据存储和加载。同时,详细介绍了文档类`CTestDoc`的析构函数,确保在删除对象时避免内存泄漏,通过循环遍历并释放`CAge`对象。此外,还展示了`CTestDoc`类如何处理成员变量的串行化操作。
摘要由CSDN通过智能技术生成

//自定义类
//注意要在自定义类中动态串行化宏声明
void CAge::Serialize(CArchive& ar) 
{
    if (ar.IsStoring())
    {    // storing code
        ar<< val ;        
    }
    else
    {    // loading code
        ar >> val ;
    }
}

//文档类的析构函数
CTestDoc::~CTestDoc()
{
    //循环遍历, 微软说这样安全
    POSITION pos ;    
    for (pos = list->GetHeadPosition();  pos != NULL; list->GetNext(pos))
    {        
        CAge* n = (CAge*) list->GetAt(pos); // Save the old pointer for        
        delete n; // Deletion avoids memory leak.
    }
    list->RemoveAll();
}

//文档类的串行化
void CTestDoc::Serialize(CArchive& ar)
{
    if (ar.IsStoring())
    {
        // TODO: add storing code here
        //文档类中的自定义成员变量
        ar << list ;       
    }
    else
    {
        // TODO: add loading code here
        ar >> list ;       
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值