目录
前言
当我们在编译完成某个C++项目的时候,我们期望对项目内某个类进行一些小的改动,即使这个改动对这个类的影响很小,但当我们重新按下编译时,通常需要花上等同第一次编译的时间对整个项目应用这个微小的改动。那么有什么方式能够解决这个令人头疼的问题呢?
PImpl!
一、PImpl是什么?
PImpl全称Pointer to implementation指向实现的指针,通过一种将类的实现放置在单独类中以不透明指针访问的方式,将类的实现从对象中移除隐藏起来的编程技巧。可以很好的降低编译过程的依赖性,同时也可以解决一些意想不到的问题。
可能这样,很多人并不能够很好的理解什么是PImpl以及为什么PImpl能够解决重新编译速度的问题,那么我们从C++类的定义开始。
来看一个简单的C++类的定义:
class Person
{
public:
string name="";
private:
int age=0;
double weight=0;
Date birthdate;
}
这里描述了一个类:人,它具有姓名、年龄、体重以及生日这几个成员变量,其中年龄、体重以及生日为私有属性(保护隐私啦,哈哈)。当我们将