MFC如何生成一個可串行化的類
一、MFC允許對象在程序運行的整個過程中持久化的串行化機制
(1)串行化是指向持久化存儲媒介(如一個磁盤文件)讀或寫對象的過程。
(2)串行化用于在程序運行過程時或之后修復結構化數據(如C++類或結構)的狀態。
(3)MFC支持CObject類中的串行化,所以,所有繼承于CObject的類可以利用CObject的串行化協議。
(4)串行化的基本思想:
a、對象必須能將其當前狀態寫入到持久化存儲媒介中,通常用其成員變量實現。
b、對象可以通過讀或反序列化從存儲媒介中重新構造對象的狀態。
c、串行化處理所有對象指針的細節,以及序列化對象時對對象的循環引用。
d、關鍵點是對象自己負責讀和寫其本身的狀態,所以,序列化一個對象時,必須是想基本的序列化操作。
(5)MFC使用CArchive類的對象作為被序列化的對象和存儲媒介之間的中間媒介。
二、生成一個可串行化的類的步驟
(1) Derive your class from CObject. (定義一個基類為CObject的類)
(2) Override the Serialize member function.(重寫串行化函數)
(3) Use the DECLARE_SERIAL macro in the class declaration.(在類聲明文件中使用DECLARE_SERIAL宏)
(4) Define a constructor with no arguments (a default constructor).(定義一個無參數的構造函數)
(5) Use the IMPLEMENT_SERIAL macro in the class implementation file.(在實現文件中使用IMPLEMENT_SERIAL宏)
三、實例
Graph.h文件:
[cpp] view plaincopy