在CB中实现流类的版本控制

王朝other·作者佚名  2008-06-01
窄屏简体版  字體: |||超大  

要使一个类成为流类,首先应为该类定义两个成员函数SaveToStream 和 LoadFromStream, (如何定义请参见“流类i/o的简化处理”) 然后在这两个函数内考虑流的版本。示例如下:

class TSome{

private:

int num;

double sum;

public:

void SaveToStream(TStream*stream)

{//函数中代码需要参见“流类i/o的简化处理”

TDataIO < int > (0x10001) >> stream;//存储版本号1.1

TDataIO < int > (num) >> stream;//存储num

TDataIO < double > (sum) >> stream;//存储sum

}

void LoadFromStream(TStream*stream)

{

int ver=TDataIO < int > ( ) << stream;//读取版本号

if(ver==0x10001){

num=TDataIO < int > ( ) << stream;//读取num

sum=TDataIO < double > ( ) << stream;//读取sum

}else if(ver==0x10002){

//这里处理另一版本....

}//end if-else

}//end LoadFrom...

//类中其它代码 ...

};//end class

--------------------------------------------------------------------------------

当类中的成员有变动时,只需为相应的变动作记载,并赋予一个内部版本号, 在i/o函数中为每个内部版本提供读取/存储代码即可。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航