正在阅读:C++学习:在C++中创建持久对象C++学习:在C++中创建持久对象

2004-02-14 09:34 出处:PConline 作者:Danny Kalev/CSDN 责任编辑:linjixiong

   实现deserialize() 需要一些技巧,因为你需要为字符串分配一个临时缓冲区。做法如下:

   void MP3_clip::deserialize()

   {

    ifstream arce("mp3.dat");

    int len=0;

    char *p=0;

    arc.read(reinterpret_cast<char *>(&date), sizeof(date));

    arc.read(reinterpret_cast<char *>(&len), sizeof(len));

    p=new char [len+1]; // allocate temp buffer for name

    arc.read(p, len+1); // copy name to temp, including '\0'

    name=p; // copy temp to data member

    delete[] p;

    arc.read(reinterpret_cast<char *>(&bitrate),

    sizeof(bitrate));

    arc.read(reinterpret_cast<char *>(&stereo),

    sizeof(stereo));

   }

   性能优化

   你可能会感到迷惑,为什么不把整个对象一次性转储到文件中,而必须对每个数据成员进行序列化呢?换句话说,难道不能用下面的方式实现serialize() 吗?

   void MP3_clip::serialize()

   {

键盘也能翻页,试试“← →”键

关注我们

最新资讯离线随时看 聊天吐槽赢奖品