1. ホーム
  2. c++

[解決済み] C++でクラスをシリアライズ、デシリアライズすることは可能ですか?

2022-05-02 09:06:14

質問

C++でクラスをシリアライズ、デシリアライズすることは可能ですか?

私は3年前からJavaを使っていますが、その言語ではシリアライズ/デシリアライズはかなり些細なことです。C++にも同様の機能があるのでしょうか?また、シリアライズを扱うネイティブ・ライブラリはありますか?

例を挙げていただけると助かります。

どのように解決するのですか?

その Boost::serialization ライブラリは、これをかなりエレガントに処理します。私はいくつかのプロジェクトでこれを使いました。使い方を紹介するサンプルプログラムもあります。 こちら .

ネイティブな方法は、ストリームを使うことだけです。それは本質的にすべての Boost::serialization ライブラリはストリームメソッドを拡張し、オブジェクトをテキストのような形式に書き出し、同じ形式から読み出すフレームワークをセットアップします。

組み込み型、または operator<<operator>> を適切に定義すれば、それはかなり簡単なことです。 C++のFAQ をご覧ください。