2
我試圖序列一類MFace
與BOOST的幫助下,在類boost序列化類
// class of the face
class MFace
{
public:
//constructor
MFace();
private:
//! Vector of the face nodes
mymath::Vector<DG::MNode*> Nodes;
friend class boost::serialization::access;
template<class Archive>
void serialize(Archive & ar, const unsigned int version){
//! Vector of the face nodes
ar & Nodes;
}
};
但類包含另一個類
mymath::Vector<MNode*> Nodes;
所以,當我嘗試寫Nodes
到歸檔
//create a face
MFace Face;
//archive output file
std::ofstream ofs("output.txt");
boost::archive::text_oarchive ar(ofs);
// Write data to archive
ar & Face;
...
編譯器給我一個錯誤
error: ‘class mymath::Vector<DG::MNode*>’ has no member named ‘serialize’
我應該再加一條「連載」到MFACE使用每個類(格外MYMATH ::向量,MNodes),並說明它務必做好,或者是它在某種程度上可以內MFACE不接觸其他解決問題班?
的包括有
#include <boost/archive/text_oarchive.hpp>
#include <boost/archive/text_iarchive.hpp>
//contains mymath::Vector<>
#include "mymath/vector.h"
//containes MNodes
#include "MNode.h"
#include <fstream>
因此,MFace中的MNodes的分解實際上起作用。感謝這個想法。 – user2157125 2013-03-11 15:58:23
沒問題 - 只要記住當你使用分解時,如果有任何MNode改變的機會,或者MFace也會顯着改變,那麼從長遠來看,它會使你的生活變得更加困難。 – Silas 2013-03-11 16:21:15