11
在实践中真的使用了pImpl成语吗?
我正在阅读Herb Sutter撰写的“ Exceptional C ++”一书,在那本书中,我了解了pImpl习惯用法。基本上,该想法是为a的private对象创建一个结构class并动态分配它们以减少编译时间(并以更好的方式隐藏私有实现)。 例如: class X { private: C c; D d; } ; 可以更改为: class X { private: struct XImpl; XImpl* pImpl; }; 以及在CPP中的定义: struct X::XImpl { C c; D d; }; 这似乎很有趣,但是我以前从未见过这种方法,无论是在我工作的公司还是在看过源代码的开源项目中,我都从未见过。因此,我想知道这种技术是否真的在实践中使用? 我应该在任何地方使用它还是要谨慎使用?是否建议将此技术用于性能非常重要的嵌入式系统?
165
c++
oop
pimpl-idiom