当前位置: 首页 > news >正文

与建设通相关的网站设计接单渠道

与建设通相关的网站,设计接单渠道,wordpress 轻博客主题,网络游戏营销策略Boost.Serialization 还能序列化指针和引用。 由于指针存储对象的地址#xff0c;序列化对象的地址没有什么意义#xff0c;而是在序列化指针和引用时#xff0c;对象的引用被自动地序列化。 代码 #include boost/archive/text_oarchive.hpp #include boost/…Boost.Serialization 还能序列化指针和引用。 由于指针存储对象的地址序列化对象的地址没有什么意义而是在序列化指针和引用时对象的引用被自动地序列化。 代码 #include boost/archive/text_oarchive.hpp #include boost/archive/text_iarchive.hpp #include iostream #include sstream std::stringstream ss; class person { public: person() { } person(int age) : age_(age) { } int age() const { return age_; } private: friend class boost::serialization::access; template typename Archive void serialize(Archive ar, const unsigned int version) { ar age_; } int age_; }; void save() { boost::archive::text_oarchive oa(ss); person *p new person(31); oa p; std::cout std::hex p std::endl; delete p; } void load() { boost::archive::text_iarchive ia(ss); person *p; ia p; std::cout std::hex p std::endl; std::cout p-age() std::endl; delete p; } int main() { save(); load(); } 结果 0x1ff7bd0 0x1ff7830 1f上面的应用程序创建了一个新的 person 类型的对象使用 new 创建并赋值给指针 p 。 是指针 - 而不是 *p - 被序列化了。Boost.Serialization 自动地通过 p 的引用序列化对象本身而不是对象的地址。 如果归档被恢复 p 不必指向相同的地址。 而是创建新对象并将它的地址赋值给 p 。 Boost.Serialization 只保证对象和之前序列化的对象相同而不是地址相同。 由于新式的 C 在动态分配内存有关的地方使用 智能指针 (smart pointers) Boost.Serialization 对此也提供了相应的支持。 #include boost/archive/text_oarchive.hpp #include boost/archive/text_iarchive.hpp #include boost/serialization/scoped_ptr.hpp #include boost/scoped_ptr.hpp #include iostream #include sstream std::stringstream ss; class person { public: person() { } person(int age) : age_(age) { } int age() const { return age_; } private: friend class boost::serialization::access; template typename Archive void serialize(Archive ar, const unsigned int version) { ar age_; } int age_; }; void save() { boost::archive::text_oarchive oa(ss); boost::scoped_ptrperson p(new person(31)); oa p; } void load() { boost::archive::text_iarchive ia(ss); boost::scoped_ptrperson p; ia p; std::cout p-age() std::endl; } int main() { save(); load(); } 例子中使用了智能指针 boost::scoped_ptr 来管理动态分配的 person 类型的对象。 为了序列化这样的指针必须包含 boost/serialization/scoped_ptr.hpp 头文件。 在使用 boost::shared_ptr 类型的智能指针的时候需要序列化那么必须包含 boost/serialization/shared_ptr.hpp 头文件。 下面的应用程序使用引用替代了指针。 #include boost/archive/text_oarchive.hpp #include boost/archive/text_iarchive.hpp #include iostream #include sstream std::stringstream ss; class person { public: person() { } person(int age) : age_(age) { } int age() const { return age_; } private: friend class boost::serialization::access; template typename Archive void serialize(Archive ar, const unsigned int version) { ar age_; } int age_; }; void save() { boost::archive::text_oarchive oa(ss); person p(31); person pp p; std::coutpstd::endl;oa pp; } void load() { boost::archive::text_iarchive ia(ss); person p; person pp p; ia pp; std::cout p pp.age() std::endl; } int main() { save(); load(); 输出结果 0x7ffc362e9360 0x7ffc362e9360 31指针数组 #include iostream #include fstream #include string #include boost/archive/text_oarchive.hpp #include boost/archive/text_iarchive.hpp #include boost/serialization/vector.hppconst int ARRAY_SIZE 3;class SomeType { public:SomeType() : value(0) {}SomeType(int val) : value(val) {}int getValue() const { return value; }// 添加序列化函数template class Archivevoid serialize(Archive ar, const unsigned int version) {ar value;}private:int value; };class MyClass {friend class boost::serialization::access;public:MyClass() default;int data;SomeType* pointers[ARRAY_SIZE];template class Archivevoid serialize(Archive ar, const unsigned int version) {ar data;for (int i 0; i ARRAY_SIZE; i) {ar pointers[i];}} };int main() {MyClass obj;obj.data 42;for (int i 0; i ARRAY_SIZE; i) {obj.pointers[i] new SomeType(i * 10);}{std::ofstream file(my_class_data.txt);boost::archive::text_oarchive oa(file);oa obj;}for (int i 0; i ARRAY_SIZE; i) {delete obj.pointers[i];}MyClass loadedObj;{std::ifstream file(my_class_data.txt);boost::archive::text_iarchive ia(file);ia loadedObj;}std::cout Loaded Object Data: loadedObj.data std::endl;for (int i 0; i ARRAY_SIZE; i) {std::cout loadedObj.pointers[i]-getValue() std::endl;delete loadedObj.pointers[i];}return 0; }
http://www.dnsts.com.cn/news/4948.html

相关文章:

  • 网站开发能进无形资产吗中国建筑集团有限公司有几个局
  • 网站开发 无代码彩票网站怎么样建设
  • 什么网站做招聘收录好建立企业网站的目的和意义
  • 做网站在线视频如何添加关于做网站的前言
  • 网站建设推广注册公司月刊可以用什么网站做
  • 企业网站建设东莞公司变更经营范围需要哪些资料
  • 带数据库的网站做关于进行网站建设费用的请示
  • 如何让订阅号菜单做微网站wordpress form 生成
  • 模板网站哪个好wordpress page template
  • 郑州网站建设wordpress登录之后强制绑定邮箱
  • 新站seo外包如何构建自己的网站
  • 做网站付款方式营销网站模版
  • 什么是网站收录苏州门户网站建设电话
  • 定襄网站建设婚纱网站设计目标
  • 一起做网站17广告设计图片网站
  • 佛山营销网站建设服务在哪个网站上做外贸好
  • 网站导航栏特效企业工商登记信息查询系统
  • 上海网站建设内容更新asp在网站开发中起什么作用
  • php网站开发技术与开源系统应用 实训指导书ps怎么做网站特效
  • 做团购网站的心得年度关键词
  • 教育网站建设计划书网站首页index.php全屏展示代码怎么弄
  • 中上网站建设广告公司企业简介
  • 视觉中国的图片可以拿来做网站服装高级定制品牌
  • 怎么注册英文网站域名互联网优化营销
  • 安康网站建设制作html5新增标签有哪些
  • 宁波建设局网站郑建华手机怎么建自己的网站
  • 金坛市建设局网站各大高校的校园网站建设
  • 竞价网站转化率为多少安阳市住房和城乡建设厅网站
  • 建站网站和维护需要会什么2345网址导航用户中心
  • 建网站需要买些什么wordpress模版修改