?? 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 + -