首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C++ >> 關於C++

C++Builder 實作流類別版本控制:SaveToStream/LoadFromStream 模式

     編輯:關於C++

使類別支援流式 I/O 並具備版本相容性,需定義 SaveToStream/LoadFromStream 並引入版本號機制。

類別範例

class TSome {
private:
    int num;
    double sum;
public:
    void SaveToStream(TStream* stream) {
        TDataIO<int>(0x10001) >> stream;  // 版本 1.1
        TDataIO<int>(num) >> stream;
        TDataIO<double>(sum) >> stream;
    }
    void LoadFromStream(TStream* stream) {
        int ver = TDataIO<int>() << stream;
        if (ver == 0x10001) {
            num = TDataIO<int>() << stream;
            sum = TDataIO<double>() << stream;
        } else if (ver == 0x10002) {
            // 處理舊版本...
        }
    }
};

版本管理策略

  • 寫入時固定輸出當前版本號(如 0x10001 表示 1.1)。
  • 讀取時先讀版本號,依版本分支處理資料欄位。
  • 新增欄位時遞增版本號,舊版本讀取邏輯保留確保向後相容。
  • TDataIO 為簡化流讀寫的輔助模板(參考「流類別 I/O 簡化處理」)。

此模式適用於 C++Builder VCL 流架構,核心思想為「版本號 + 條件式反序列化」。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved