Boost序列化学习之二——binary_oarchive追本溯源
2012-01-01 00:59
363 查看
Boost的序列化功能非常强大,看似简单的实现实则包含很多的设计理念,下面从二进制序列化保存binary_oarchive开始吧,
从图中可以看出,binary_oarchive的父类还是相当多的,仅仅是对数据的保存,为什么需要对父类进行这样的划分呢?
noncopyable:该类本身什么功能都没有,没有任何属性和方法,并且将所有初始化的接口保护起来了,源码如下:
basic_oarchive:该类继承自类noncopyable,该类内部有它自身的子类成员basic_oarchive_impl * pimpl;
interface_oarchive:
从图中可以看出,binary_oarchive的父类还是相当多的,仅仅是对数据的保存,为什么需要对父类进行这样的划分呢?
noncopyable:该类本身什么功能都没有,没有任何属性和方法,并且将所有初始化的接口保护起来了,源码如下:
// Private copy constructor and copy assignment ensure classes derived from // class noncopyable cannot be copied. // Contributed by Dave Abrahams namespace noncopyable_ // protection from unintended ADL { class noncopyable { protected: noncopyable() {} ~noncopyable() {} private: // emphasize the following members are private noncopyable( const noncopyable& ); const noncopyable& operator=( const noncopyable& ); }; } typedef noncopyable_::noncopyable noncopyable;
basic_oarchive:该类继承自类noncopyable,该类内部有它自身的子类成员basic_oarchive_impl * pimpl;
interface_oarchive:
相关文章推荐
- Boost asio学习笔记之二—— 网络编程
- Boost 学习之二 BGL
- boost之序列化学习(一)
- boost::serialization学习笔记-----类成员序列化
- [LeetCode] Binary Tree Longest Consecutive Sequence II 二叉树最长连续序列之二
- C#序列化 反序列化 深入学习
- JavaScript学习笔记之二
- [原创]unity3D学习【功能实现】之二:图片的旋转/2d物体的旋转
- Ubuntu 学习笔记之二
- 设计模式C++学习笔记之二(Proxy代理模式)
- input子系统驱动学习之二
- 数据挖掘十大经典算法学习之Adaboost自适应增强学习算法
- 设计模式学习之——六大设计原则之二:里氏替换原则
- boost学习2.5:data_time库(1概述)
- 模式识别笔记4-集成学习之AdaBoost
- 【boost学习笔记】命令行解析库(program_options)
- BITED-Windows8应用开发学习札记之二:Win8应用常用视图设计
- 狂人日记学习 之二 一列固定宽度 自适应
- Boost学习-MSM翻译
- 【网络编程】之二、socket API学习