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

vue做的个人网站销售课程培训视频教程

vue做的个人网站,销售课程培训视频教程,深圳市南山区粤海街道,sns社交网站开发C PIMPL 编程技巧 文章目录 C PIMPL 编程技巧什么是pimpl?pimpl优点举例实现 什么是pimpl? Pimpl (Pointer to Implementation) 是一种常见的 C 设计模式,用于隐藏类的实现细节,从而减少编译依赖和提高编译速度。它的基本思想是将…

C++ PIMPL 编程技巧

文章目录

  • C++ PIMPL 编程技巧
    • 什么是pimpl?
    • pimpl优点
    • 举例实现

什么是pimpl?

Pimpl (Pointer to Implementation) 是一种常见的 C++ 设计模式,用于隐藏类的实现细节,从而减少编译依赖和提高编译速度。它的基本思想是将一个外部可见类 (visible class) 的实现细节(一般是所有私有的非虚成员)放在一个单独的实现类 (implementation class) 中,而在可见类中通过一个私有指针来间接访问该实现类。这种技术用于构建具有稳定 ABI 的 C++ 库接口并减少编译时间依赖。

pimpl优点

  • 接口和实现分离
  • 减少头文件依赖
  • 提高编译速度

举例实现

比如说我有一个Producer的对外接口:
文件如下:

producer.h  //对外
producer.cc
producer_impl.h // 具体实现
producer_impl.cc // 具体实现

头文件producer.h对外。

producer.h

#include <memory>
#include <string>class ProducerImpl; // 前置声明class Producer {public:Producer();~Producer() = default;bool CreateProducer(const std::string& name);private:std::shared_ptr<ProducerImpl> impl_;
};

producer.cc

#include "producer.h"Producer::Producer() {impl_ = std::make_shared<ProducerImpl>();
}bool Producer::CreateProducer(const std::string& name) {return impl_ ->CreateProducer(name);
}

producer_impl.h

#include <string>class ProducerImpl {public:ProducerImpl ();~ProducerImpl ();bool CreateProducer(const std::string& name);
};

producer_impl.cc

#include "producer_impl.h"bool ProducerImpl::CreateProducer(const std::string& name) {// impl接口具体实现return true;
}

通过如上示例,外部用户只需包含 producer.h即可,内部实现均在impl中实现,后续如果修改也只是修改impl中的内容,并不会动对外接口。

当然最好是配合 attribute((visibility(“default”))) 来使用。attribute((visibility(“default”))) 是 GCC 编译器的一个属性,用于控制符号的可见性。它可以用来指定一个符号在动态链接时是否可见。当使用 -fvisibility=hidden 编译选项时,所有符号默认都是隐藏的,但可以使用 attribute((visibility(“default”))) 来指定某些符号是可见的。这样,可以减少动态链接库中不必要的符号,提高加载速度和运行速度。

比如上面几个文件 可以按照如下文件夹来排布:

include/producer.h
src/producer.cc
src/producer_impl.h
src/producer_impl.cc

并配合__attribute__((visibility(“default”))) 使用只将producer.h对外可见。

http://www.zhongyajixie.com/news/50605.html

相关文章:

  • 做网站要找什么软件广告推广有哪些平台
  • 北京哪个网站制作公司企业网站营销优缺点
  • 网站建设是前端的吗齐三seo顾问
  • 锦州如何做百度的网站做百度推广效果怎么样
  • 做代购注册什么网站网址搜索
  • 学室内设计真的那么惨吗seo搜索规则
  • 网站开发建设费用明细福州关键词排名软件
  • 网站名称注册保护营销推广渠道有哪些
  • 做网站什么科目网站制作公司官网
  • 重庆做网站电话北京疫情最新新闻
  • 找什么样的公司帮助做网站专业排名优化工具
  • 做旅游广告在哪个网站做效果好seo免费课程
  • 网站分页设计作用域名官网
  • 建信金融科技有限责任公司百度词条优化工作
  • 衡器行业网站建设模板深圳网络推广建站
  • 永久免费网站建设系统市场调研报告总结
  • 聊城网站优化公司朋友圈推广怎么收费
  • 平顶山市湛河区建设局网站如何做网站关键词优化
  • phpcms网站title网站视频播放代码
  • 个人开店做外贸网站菏泽百度推广公司电话
  • 网站策划岗位职责槐荫区网络营销seo
  • dw怎么做班级网站谷歌seo优化推广
  • 合肥论坛百度搜索关键词优化方法
  • 建设工程网站资质人员查询百度搜索下载安装
  • 网站设计模式有哪些网页设计与制作
  • 怎么做家庭网站网站建设案例
  • 提高景区网站建设网络营销成功案例ppt
  • 网站建设qianhaiyou企业邮箱入口
  • 哪家网站建设最好北京百度竞价
  • 网站建设管理软件新品牌推广方案