pimpl在C ++ apps / libs中使用在哪里?任何例子?

问题描述 投票:1回答:1

pimpl idiom允许减少项目中的编译依赖性并同时具有二进制兼容性。

换句话说,您可以更改类的私有实现,而无需重新编译客户端的代码。

我在哪里可以找到这种方法的例子?您知道任何使用它的开源库或应用程序吗?

我知道QT和Poco:

c++ qt design-patterns poco-libraries
1个回答
2
投票

我在哪里可以找到这种方法的例子?您知道任何使用它的开源库或应用程序吗?

Qt。具体模块示例:QGraphicsItem.cpp,填充d_ptr。私人部分interface。整个thing有公共和私人模块。

在将整个库/框架移植到不同平台的情况下,私有实现很有意义。您只需将实现的不同文件放在一起,同时保持公共接口不变。并且可以通过d_ptr->访问实现。

对于好奇:非Qt Pimpl C ++ 11 example

© www.soinside.com 2019 - 2024. All rights reserved.