C++ | 隐藏实现pimpl(pointer to implementation)

概念:指向实现对象的指针,在头文件中,对类进行声明,将其中一些成员变量用一个具体实现类或者结构体的指针来代替,然后将这个具体实现类或结构体的定义放在源文件中

作用:

  • 声明与定义分离,对用户隐藏实现
  • 加快编译速度

例子:

// a.h
class A{
public:
	A():

private:
	std::map<std::string, std::string> name_map_;
	std::vector<double> data_;
};
// a.h
class A{
public:
	A();

private:
	struct Tmpl;
	std::unique_ptr<Tmpl> p_impl_;
};

// a.cc
#include "a.h"

struct A::Tmpl{
	std::map<std::string, std::string> name_map_;
	std::vector<double> data_;
};

A::A() : p_impl_(std::make_unique<Tmpl>()) {};

相关推荐

  1. C++ | 隐藏实现pimpl(pointer to implementation)

    2024-04-01 17:04:03       18 阅读
  2. c# 设置文件夹隐藏

    2024-04-01 17:04:03       41 阅读
  3. C语言隐藏执行其他程序

    2024-04-01 17:04:03       14 阅读
  4. C++面向对象:重写、重载、隐藏

    2024-04-01 17:04:03       15 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-01 17:04:03       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-01 17:04:03       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-01 17:04:03       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-01 17:04:03       20 阅读

热门阅读

  1. centos7 安装es8.12.0

    2024-04-01 17:04:03       11 阅读
  2. 蓝桥杯算法记录

    2024-04-01 17:04:03       17 阅读
  3. 设计模式-单例模式(静态内部类)

    2024-04-01 17:04:03       15 阅读
  4. 超基础自动轮播(看完不会可以反馈)

    2024-04-01 17:04:03       15 阅读
  5. 每天学习python30分钟(第二天)

    2024-04-01 17:04:03       14 阅读
  6. Python中的__init__和__new__

    2024-04-01 17:04:03       12 阅读
  7. 实时数据库测试-汇编小程序2

    2024-04-01 17:04:03       11 阅读
  8. Springsecurity的准备工作

    2024-04-01 17:04:03       14 阅读
  9. 第三十四章 配置服务器访问

    2024-04-01 17:04:03       13 阅读
  10. 【Linux】sudo权限异常提示报错

    2024-04-01 17:04:03       14 阅读