📄 lc_bcb_94.html
字号:
<HTML><HEAD><TITLE>C++Builder程序设计</TITLE>
<META content="text/html; charset=gb2312" http-equiv=Content-Type>
<META content="Microsoft FrontPage 4.0" name=GENERATOR></HEAD>
<BODY>
<TABLE align=center border=0 cellPadding=3 style="LINE-HEIGHT: 15pt"
width="100%">
<TBODY>
<TR>
<TD>
<div align="center">
<p><BR>
<FONT color=#000000>在 C++Builder 中,如何实现流类的版本控制 ?</FONT></p>
<p><FONT color=#000000>王俊蛟<BR>
</FONT></p>
</div>
<FONT color=#000000>
<HR noShade SIZE=1 width="100%" align="center">
</FONT>
<P>要使一个类成为流类,首先应为该类定义两个成员函数SaveToStream 和 LoadFromStream, (如何定义请参见“<A
>流类i/o的简化处理</A>”)
然后在这两个函数内考虑流的版本。示例如下:
<P>class TSome{<BR>
<DIR>private:<BR> int num;<BR> double
sum;<BR>public:<BR> void
SaveToStream(TStream*stream)<BR> {//函数中代码需要参见“<A
>流类i/o的简化处理</A>”<BR>
<DIR>TDataIO < int > (0x10001) >> stream;//存储版本号1.1<BR>TDataIO
< int > (num) >> stream;//存储num<BR>TDataIO < double >
(sum) >> stream;//存储sum<BR></DIR> }
<P> void LoadFromStream(TStream*stream)<BR> {<BR>
<DIR>int ver=TDataIO < int > ( ) <<
stream;//读取版本号<BR>if(ver==0x10001){<BR>
<DIR>num=TDataIO < int > ( ) << stream;//读取num<BR>sum=TDataIO
< double > ( ) << stream;//读取sum<BR></DIR>}else
if(ver==0x10002){<BR>
<DIR>//这里处理另一版本....<BR></DIR>}//end if-else<BR></DIR> }//end
LoadFrom...
<P> //类中其它代码 ...<BR></P></DIR>};//end class<BR>
<HR noShade SIZE=1 width="100%">
当类中的成员有变动时,只需为相应的变动作记载,并赋予一个内部版本号,
在i/o函数中为每个内部版本提供读取/存储代码即可。
<P></P></TD></TR>
</TBODY></TABLE>
<P> </P></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -