PIMPL(Private Implementation)模式是一种设计模式,也被称为“编译期接口隔离”或“指针实现”模式。它的主要目的是将类的私有实现部分与公共接口部分分离,以减少编译依赖性、提高封装性和减少暴露的细节。在 C++ 中,PIMPL 模式通常通过将类的私有数据和实现放在一个单独的类中,然后在类的公共接口中使用指向该私有实现类的指针来实现。
在 Qt 中,Q_DECLARE_PRIVATE 和 Q_DECLARE_PUBLIC 是两个宏,用于实现 PIMPL 模式。Q_DECLARE_PRIVATE 用于在类中声明一个私有指针,指向私有实现类,而 Q_DECLARE_PUBLIC 用于在类中声明一个公共指针,用于访问公共接口。
下面是一个示例,演示如何使用 PIMPL 模式和 Q_DECLARE_PRIVATE、Q_DECLARE_PUBLIC 宏:
// Widget.h
#include <QObject>
class WidgetPrivate; // 前向声明私有实现类
class Widget : public QObject
{
Q_OBJECT
Q_DECLARE_PRIVATE(Widget)
public:
Widget(QObject *parent = nullptr);
void doSomething();
private:
Q_D
订阅专栏 解锁全文
1万+

被折叠的 条评论
为什么被折叠?



