2013-10-08 54 views
2

我是否需要序列化沒有成員的基礎對象(例如接口)?使用boost :: serialization時,是否應該對沒有成員變量的基礎對象進行序列化?

class Base { 
    template <typename A> void serialize(A& a, unsigned int v) {} 
}; 

class Derived: public Base { 
    template <typename A> void serialize(A& a, unsigned int v) { 
     // Should I do this? 
     archive & boost::serialization::base_object<Base>(*this); 
    } 
}; 

好像這是不必要的樣板,並會導致自boost ::在基類的序列化一個額外的依賴,但在同一時間,如果有人會添加成員的基類後,這將是困難,因爲整個層次結構都需要改變。

+1

我不確定,如果你序列化一個基指針會怎麼樣? –

+0

是的,你說得對,如果沒有序列化基礎對象,它將無法正常工作。你能把它作爲答案嗎? – lizarisk

回答

1

對於基本指針的序列化,您需要Base :: serialize。

相關問題