2011-08-07 15 views
0

嘿讓我明白了升壓序列化指針自動只要你定義它指向的對象序列化功能,但如何在此改變時的boost ::連載獲得一個指向對象的指針會發生什麼

如果我想編寫一個需要myClass pointer的boost序列化函數,我該怎麼辦?

我不想提升做保存指向的對象的默認操作,然後恢復指向該指針的指針。我希望助力做一些不同的事情。

+1

是否有一個原因,你不能只取消指針,或者我錯過了什麼? –

+1

你想在這種情況下使用序列化函數做什麼「不同的事情」?既然你控制每個成員的序列化,你不能簡單地看到指針並做「不同的事情」而不是傳遞給存檔? –

回答

1

如果你需要一個行爲是正常的指針序列爲您的特殊類不同,你有兩個選擇:

也許你可以調整序列化()所有的結構的方法/包含您的MyClass的指針類以達到你想要的行爲。但是,如果你有很多這樣的指針,這不會是一個選項。另一種可能是使用免費函數,如http://www.boost.org/doc/libs/1_47_0/libs/serialization/doc/index.html(爲myClass指針所寫)中所述。

另一個選項僅適用於使用不多於一種存檔類型(例如二進制存檔)的情況。您可以從存檔類派生併爲方法save(和load分別)添加一個超載。

+0

是的我被困在第二個選項我猜,任何鏈接到更多的信息如何做到這一點/爲什麼我只能做到一個檔案? – Griffin

+0

我建議使用debbugger來跟蹤您正在使用的檔案中的方法調用。但是,如果您需要多個存檔 - 爲什麼不選擇選項1? (你能指定你想要做什麼嗎?) – Philipp

相關問題