보호 된 멤버로 클래스를 serialize하려고하면 다음 오류가 발생합니다. "NetElement 클래스에 선언 된 보호 된 멤버에 액세스 할 수 없습니다." 클래스 정의 밖에서 하나의 직렬화 함수를 갖고 싶습니다. 내가 도대체 뭘 잘못하고있는 겁니까?보호 된 데이터에 대한 순차 액세스를 향상
안부, 여기
코드가 mightydodol ... 다른 비 멤버 함수처럼
// class definition
class NetElement
{
friend class boost::serialization::access;
protected:
int nelements;
int ids;
public:
static NetElement* New(){return new NetElement;}
virtual void Delete(){delete this;}
protected:
NetElement(){};
~NetElement(){};
};
// nonintrusive serialize
template<class Archive>
void serialize(Archive & ar, NetElement& element, const unsigned int version=1)
{
ar & element.nelements & element.ids;
}
int main(void)
{...
std::ofstream os("Pipe1.txt");
boost::archive::text_oarchive oa(os);
serialize(oa,el/*ref to NetElementObj*/);
...
}
대답은 – dodol