C++中的PImpl的技巧及其作用
来源:互联网 发布:ubuntu 16.04 legacy 编辑:程序博客网 时间:2024/06/06 20:53
1、PImpl(private implementation) 其主要作用是解开类的使用接口和实现的耦合。
2、Pimpl 手法能比较完善的解决这些问题。利用 Pimpl 手法,我们把数据细节隐藏到一个实现类里:CImpl,而CSample 的 private 部分只剩下一个指针,那就是传说中滴 Pimpl 指针
头文件中:
class CSample { private: class CImpl;//私有内部类 shared_ptr mp;//自动释放指针,通过Pimpl指针 public: CSample(); void print(); };
实现文件中: //内部类实现 class CSample::CImpl { public: void doPrint() { //do something cout << "impl print" << endl; } }; CSample::CSample() : mp(new CImpl) { } CSample::~CSample() { //do not have to delete, std::shared_ptr is very nice } void CSample::print() { //just call your PIMPL function ; mp->doPrint(); }
类CSample仅向外界暴露了最小的接口,真正的实现由其内部类CImpl来完成。这样无论CImpl如何修改,外界对此一无所知,从而保持接口的不变性。这种方式的另外一个好处是减少了头文件之间的依赖关系。
上面的代码里,我使用了boost的shared_ptr来管理指针,简化代码。类CSample仅向外界暴露了最小的接口,真正的实现由其内部类CImpl来完成。这样无论CImpl如何修改,外界对此一无所知,从而保持接口的不变性。这种方式的另外一个好处是减少了头文件之间的依赖关系。
上面的代码里,我使用了boost的shared_ptr来管理指针,简化代码。
0 0
- C++中的PImpl的技巧及其作用
- C++的PImpl技巧及作用
- #ifdef-#endif的作用及其使用技巧
- 2篇关于c++pImpl 的文章
- 【C++程序设计技巧】Pimpl机制
- C++之善用PIMPL技巧
- pImpl的原理
- pImpl的原理
- pImpl的原理
- pimpl的理解
- pImpl的高级用法
- 培训中的角色及其作用
- scipy中的包及其作用
- scipy中的包及其作用
- 浅谈网管软件中的事件归并的设计及其作用
- Hibernate 中的 Configuration 的创建方式及其作用
- 简述C语言中宏的作用及其副作用
- C++开发中的pImpl方法
- 1046. Shortest Distance (20)
- jQuery事件绑定—on()、bind()与delegate() (赞)
- easyUI实现显示“未找到查询结果”以及在loadtable方法中传递参数
- 【tarjan模板】
- shell常用语句
- C++中的PImpl的技巧及其作用
- 【UML】UML之类图
- 排序算法
- 程序员应该避免的5种代码注释
- Android中SQLite应用详解
- 如何用CSS画三角形
- ComboBoxEdit
- sql server 2005 express 工具 失败
- oracle与sqlserver处理判断字段是否为空