pimpl idiom允许减少项目中的编译依赖性并同时具有二进制兼容性。
换句话说,您可以更改类的私有实现,而无需重新编译客户端的代码。
我在哪里可以找到这种方法的例子?您知道任何使用它的开源库或应用程序吗?
我知道QT和Poco:
我在哪里可以找到这种方法的例子?您知道任何使用它的开源库或应用程序吗?
Qt。具体模块示例:QGraphicsItem.cpp,填充d_ptr
。私人部分interface。整个thing有公共和私人模块。
在将整个库/框架移植到不同平台的情况下,私有实现很有意义。您只需将实现的不同文件放在一起,同时保持公共接口不变。并且可以通过d_ptr->
访问实现。
对于好奇:非Qt Pimpl C ++ 11 example。