pimpl 即 Private Implementation(Pointer to Implementation。
通过一个私有的指针,指向类的内部,以实现类的核心数据的隐藏。
pimpl的优点
- 隐藏类的核心数据成员和私有函数。
- 可加快编译的速度,例如一些复杂的类,引用该类的地方很多,每个引用的地方都要引入头文件
便会增加编译时间,这种方式,将实现放在了cpp文件中,其他地方在引入这个头文件的时候,
依赖的类型变少,编译的速度加快。 - 接口和实现分离,我们导出的头文件,仅仅包含一个pimpl的指针,当我们对pimpl类进行修改时
导出的头文件不需要修改。