📄 20000916020.htm
字号:
<HTML>
<HEAD>
<TITLE>在 C++Builder 中,如何实现流类的版本控制 ?</TITLE>
<META content="MSHTML 5.00.2314.1000" name=GENERATOR>
</HEAD>
<BODY aLink=#FF0000 bgColor=#ffffff leftMargin=0 link=#187800 topMargin=0
vLink=#990099>
<div align="center">
<table width="744" border="0" cellspacing="0" cellpadding="0" height="76">
<tr>
<td>
<p align="center"><font size="3"><br>
<b>在 C++Builder 中,如何实现流类的版本控制 ?</b></font></p>
<p align="left">要使一个类成为流类,首先应为该类定义两个成员函数SaveToStream 和 LoadFromStream,
然后在这两个函数内考虑流的版本。示例如下:
<p align="left">class TSome{<br>
<dir>
<div align="left">private:<br>
int num;<br>
double sum;<br>
public:<br>
void SaveToStream(TStream*stream)<br>
{//函数中代码需要参见<br>
</div>
<dir>
<div align="left">TDataIO < int > (0x10001) >> stream;//存储版本号1.1<br>
TDataIO < int > (num) >> stream;//存储num<br>
TDataIO < double > (sum) >> stream;//存储sum<br>
</div>
</dir>
<div align="left"> } </div>
<p align="left"> void LoadFromStream(TStream*stream)<br>
{<br>
<dir>
<div align="left">int ver=TDataIO < int > ( ) << stream;//读取版本号<br>
if(ver==0x10001){<br>
</div>
<dir>
<div align="left">num=TDataIO < int > ( ) << stream;//读取num<br>
sum=TDataIO < double > ( ) << stream;//读取sum<br>
</div>
</dir>
<div align="left">}else if(ver==0x10002){<br>
</div>
<dir>
<div align="left">//这里处理另一版本....<br>
</div>
</dir>
<div align="left">}//end if-else<br>
</div>
</dir>
<div align="left"> }//end LoadFrom... </div>
<p align="left"> //类中其它代码 ...<br>
</p>
</dir>
<div align="left">};//end class<br>
<font color=#008000>当类中的成员有变动时,只需为相应的变动作记载,并赋予一个内部版本号, 在i/o函数中为每个内部版本提供读取/存储代码即可。</font></div>
</td>
</tr>
</table>
</div>
</BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -