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

自己做免费的网站吗做网站去哪里找模板

自己做免费的网站吗,做网站去哪里找模板,局域网网站域名怎么做,四川成都网站建设C 中的 Pimpl 惯用法 介绍 Pimpl(Pointer to Implementation)是一种常见的 C 设计模式,用于隐藏类的实现细节,从而减少编译依赖和提高编译速度。本文将通过一个较为复杂的例子,展示如何使用智能指针(如 s…

C++ 中的 Pimpl 惯用法

介绍

Pimpl(Pointer to Implementation)是一种常见的 C++ 设计模式,用于隐藏类的实现细节,从而减少编译依赖和提高编译速度。本文将通过一个较为复杂的例子,展示如何使用智能指针(如 std::unique_ptr)来实现 Pimpl 惯用法。

什么是 Pimpl 惯用法?

Pimpl 是 “Pointer to Implementation” 的缩写,这个模式可以帮助我们:

  • 将接口和实现分离
  • 减少头文件中的依赖
  • 加速编译

基本实现

基本的 Pimpl 实现需要一个前置声明的内部类和一个指向该内部类的指针。在这里,我们使用 std::unique_ptr 来管理这个内部类的实例。

MyClass.h

#include <memory>class MyClassImpl; // 前置声明class MyClass {
public:MyClass();~MyClass();void DoSomething();private:std::unique_ptr<MyClassImpl> pimpl;
};

MyClass.cpp

#include "MyClass.h"class MyClassImpl {
public:void DoSomething() {// 实现细节}
};MyClass::MyClass() : pimpl(std::make_unique<MyClassImpl>()) {}
MyClass::~MyClass() = default;void MyClass::DoSomething() {pimpl->DoSomething();
}

示例

假设我们有一个 Car 类,它有多个组件,如 EngineWheel

Car.h

#include <memory>
class CarImpl;class Car {
public:Car();~Car();void Start();void Stop();private:std::unique_ptr<CarImpl> pimpl;
};

Car.cpp

#include "Car.h"
#include "Engine.h"
#include "Wheel.h"class CarImpl {
public:Engine engine;Wheel wheel[4];void Start() {engine.Start();// 其他逻辑}void Stop() {engine.Stop();// 其他逻辑}
};Car::Car() : pimpl(std::make_unique<CarImpl>()) {}
Car::~Car() = default;void Car::Start() {pimpl->Start();
}void Car::Stop() {pimpl->Stop();
}

在这个例子中,Car 的用户只需要包含 Car.h,而不需要知道 EngineWheel 的存在。这样就降低了编译依赖并提高了编译速度。

总结

通过使用 Pimpl 惯用法和智能指针,我们能更有效地隐藏实现细节,提高编译速度,并使代码更易于维护。

http://www.yayakq.cn/news/40322/

相关文章:

  • 网站转html5好公司网站建设价格
  • 百度竞价网站源码网页与网站设计什么是整体造型
  • 绵阳做手机网站合肥网站建设外包
  • 浅析图书馆门户网站建设做门户网站用什么软件
  • 有没有哪个做美食的网站富利建设集团有限公司网站
  • 甘肃省住房建设厅网站证书查询福州市连江县建设局网站
  • 河南天元建设公司网站中国十大企业培训公司
  • 安徽建设厅网站怎么打不开网页版微信读书
  • SEO网站布局优化iis网站asp.net部署
  • 投资公司排名沈阳百度seo关键词优化排名
  • 网站建设和管理经验网站设计的大公司
  • 做网站需要买主机那网页制作题用什么软件
  • wordpress 登录接口seo最新优化技术
  • 网站做营销推广南宁武鸣区建设局网站
  • 网站建设的重难点分析免费动图制作app
  • 常用网站域名制作人漫画
  • 宠物网站设计模块wordpress仿微信音乐插件
  • 临沂品牌网站推广太原网站改版
  • 汽车配件生产企业网站模板后缀int网站
  • 哪个网站有天天做股市直播的注册深圳公司流程和费用
  • 网站科技动效网站开发的前置审批是什么意思
  • 公司做网站要企业认证电子商务网站建设与维护管理
  • 青海 网站开发 图灵附近装修公司电话号码
  • 有哪些做兼职的设计网站安卓开发软件
  • 网站的标题符号门户网站制作流程
  • 郑州便宜网站建设报价制作html网页的软件
  • 做各国民宿租赁的网站网站建设设计设计公司
  • 选择建设网站公司要注意什么电子商务网络运营
  • 深圳专业建网站多少钱重庆中小企业网站建设公司
  • 合肥响应式网站建设做教育网站还挣钱吗