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

织梦的网站模板免费吗学校官网网站建设的现状分析

织梦的网站模板免费吗,学校官网网站建设的现状分析,在线装修设计师咨询,开发三味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.w-s-a.com/news/877772/

相关文章:

  • 北京专业网站设计推荐怎么建立网站网址
  • 上海网站建设开发公司哪家好网站数据搬家
  • 杭州建站平台哪里有免费的网站推广软件
  • 深圳极速网站建设服务什么网站可以做产品入驻
  • 淄博易宝网站建设app推广拉新公司
  • 营销型外贸网站建设软件备案域名出租
  • 网站域名禁止续费m99ww094cn 苍井空做的网站
  • 上海建设工程网站大同网站建设熊掌号
  • 设计类书籍网站江苏网站建设简介模板
  • 手机企业网站推广c 手机app开发
  • 网站建设需要多少天凡客建设网站稳定吗
  • 房天下网站建设女生说wap是什么意思
  • 网站开发安全机制北京做网站多少钱合理
  • 扁平化 公司网站建设大型视频网站需要的资金量
  • 免费建各种网站淄博网站建设yx718
  • 凡科网建站入门教程运城市网站建设
  • 黄浦区未成年人思想道德建设网站oa系统是什么
  • 微信里的网站怎么做电子商务网站开发平台
  • 易企秀网站怎么做轮播图网站建设张世勇
  • 网站备案幕布尺寸建立网页的几个步骤
  • pc网站页面找出网站所有死链接
  • 专业做seo的网站网站内连接
  • 阿里云网站开发服务器想开网站建设公司
  • 网站开发不足之处茶叶seo网站推广与优化方案
  • 响应式网站建设系统网站优化怎么做 有什么技巧
  • 班级网站做哪些方面wordpress标签 扩展
  • 如何在电商上购物网站Wordpress 域名授权插件
  • 网站建设后台怎么弄昆明如何做好关键词推广
  • 自己怎么做个网站优酷视频网站开发
  • 2015做网站前景电子商务营销的发展现状