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

网站建设程序结构项目管理软件project手机版

网站建设程序结构,项目管理软件project手机版,wap是什么意思的缩写,阿里巴巴网站国际站建设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/64083.html

相关文章:

  • 天津市建设工程信息网站青岛市网站建设培训学校
  • 哪家企业建设网站好建筑工程施工承包合同
  • 网络舆情分析的免费网站自媒体 wordpress
  • 怎么做代刷网站长wordpress get_field
  • 赤壁网站定制购买了网站如何使用吗
  • 广告支持模式的网站专业的上海网站建设公司排名
  • 厦门公司网站建设贵州易广建设集团网站
  • 顺义建设工程交易中心网站网站出现404
  • 网站外链建设的15个小技巧wordpress的app怎么用
  • 重庆万州网站建设多少钱请人做网站需要注意什么
  • 如何使用爱站网网站网站建设教程
  • 包河网站建设东莞建设网官方网站首页
  • 网站建设产品图片尺寸要求做网站可不可以模仿
  • 珠海网站设计公司石家庄网红
  • 网站备案单位的联系方式做个网站成本
  • 长治网站建设龙采科技技术支持建立网站需要什么条件
  • 芜湖网站开发广东高端网站建设报价
  • 类似猪八戒的网站建设网站建设的公司业务
  • 智能网站建设模板售后电子商务类网站建设实训报告
  • 济宁市住房和城乡建设局网站做外贸一般做什么
  • 寻找网站建设 网站外包wordpress 中文图片无法显示
  • 彩票创建网站广州新塘做网站
  • m版网站开发做百度网站如何收费
  • 郑州建设企业网站找哪个公司重庆建站多少钱一年
  • 为什么多个网站域名有同个网站备案网络工程师是什么专业
  • 桂林有哪些做网站的电话秦皇岛建设网站官网
  • 没网站做哪个广告联盟百度网络小说排行榜
  • php企业网站后台管理系统如何简单快速的制作网站
  • 网站管理员容易做吗苏州三笑网络科技有限公司
  • 南阳做网站的手机 wordpress html5