PIMPL的成语真的在实践中使用吗?
我正在读HerbSutter的“例外C+”一书,在那本书中我学到了PIMPL的成语。基本上,我们的想法是为private
的对象class
并动态分配给缩短编译时间(并以更好的方式隐藏私有实现)。
例如:
class X{private:
C c;
D d; } ;
可改为:
class X{private:
struct XImpl;
XImpl* pImpl; };
在CPP中,定义:
struct X::XImpl{
C c;
D d;};
这似乎很有趣,但我以前从未见过这种方法,无论是在我工作过的公司,还是在我见过源代码的开源项目中。所以,我想知道这种技术是否真的在实践中得到了应用?
我应该在任何地方使用它,还是要小心使用?这种技术推荐用于嵌入式系统(性能非常重要)吗?