Tôi đã cố gắng cung cấp getters của lớp A
cho chức năng serialize()
không phải thành viên của mình vì truy cập từ các thành viên là riêng tư.Nhận các thành viên dữ liệu cá nhân cho việc tuần tự hóa không xâm nhập C++
Đáng tiếc là việc thực hiện giữ nói với tôi uncaught exception of type boost::archive::xml_archive_exception - Invalid XML tag name
khi tôi cố gắng sử dụng thu khí hoặc GetRef()
hoặc GetId()
.
Nó hoạt động tốt nếu tôi truy cập trực tiếp đến m_id
khi nó là công khai.
Có bất kỳ cách thoải mái làm như vậy?
Added một "best-of-cả-thế giới" cách tiếp cận mà không phá vỡ đóng gói: ** [Live On Coliru] (http://coliru.stacked-crooked.com/a/5d76b1aa22076a77) **. – sehe
wow. đây là một câu trả lời thực sự tốt đẹp cung cấp các giải pháp khác nhau với ưu và khuyết điểm của họ. Excactly những gì tôi đã nhảy cho;). Cảm ơn bạn ! Quá tệ tôi không thể bỏ phiếu hai lần ... Tôi sẽ thử 1/và 3/lần! – coincoin
Như mọi khi, một câu trả lời tuyệt vời. Ngoài ra, trong khi không phá vỡ đóng gói, và có khả năng một sự vi phạm hoàn toàn của sự tin tưởng, [cách tiếp cận này chứng tỏ] (http://coliru.stacked-crooked.com/a/4424c219ee37aa20) serializing biến thành viên tư nhân. Tốt nhất là tôi có thể nói, nó là tuân thủ spec. Tôi đã buồn bã phải sử dụng điều này khi giao dịch với các thư viện của bên thứ ba.): –