最佳答案
我正在读 Herb Sutter 的书 “异常 C + +”,在那本书中我学到了 PIMPL 习语。基本上,其思想是为 class
的 private
对象创建一个结构,并将它们动态分配给 减少编译时间(同时以更好的方式隐藏私有实现)。
例如:
class X
{
private:
C c;
D d;
} ;
可改为:
class X
{
private:
struct XImpl;
XImpl* pImpl;
};
在. cpp 文件中,定义如下:
struct X::XImpl
{
C c;
D d;
};
这看起来非常有趣,但是我以前从未见过这种方法,无论是在我工作过的公司,还是在我见过源代码的开源项目中。因此,我想知道这种技术是否真的在实践中使用。
我应该到处使用它,还是小心使用?这种技术是否被推荐用于嵌入式系统(其性能非常重要) ?