Questions tagged «pimpl-idiom»

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 

10
Pimpl成语vs Pure虚拟类接口
我想知道什么会使程序员选择Pimpl习惯用语或纯虚拟类和继承。 我知道pimpl习惯用法为每个公共方法和对象创建开销提供了一个显式的额外间接。 另一方面,Pure虚拟类带有用于继承实现的隐式indirect(vtable),据我了解,没有对象创建开销。 编辑:但是,如果您从外部创建对象,则需要工厂 是什么使纯虚拟类比pimpl惯用语更不受欢迎?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.