有什么用?"私人" C ++中的类

时间:2016-08-12 15:53:22

标签: c++

我正在学习一个C ++开源项目代码,该代码的类定义如下:

class MarginStacker : public QWidget
{
    Q_OBJECT
    friend class MarginStackerPrivate;

public:
    ...
};

MarginStackerPrivate类在具有MarginStacker类实现的同一源文件中定义(并同时实现),如下所示:

class MarginStackerPrivate : public QObject {
    Q_OBJECT

public:
    QMap<QodeEdit::Margin, AbstractMargin*> margins;
    MarginStacker* stacker = nullptr;
    QHBoxLayout* layout = nullptr;
    CodeEditor* editor = nullptr;
    QTimer* updateLayoutTimer = nullptr;

MarginStackerPrivate( MarginStacker* _stacker )
    : QObject( _stacker ),
        stacker( _stacker ),
        layout( new QHBoxLayout( stacker ) ),
        editor( 0 ),
        updateLayoutTimer( new QTimer( this ) )
{
    Q_ASSERT( stacker );

    // more implementation code here
    ...
};

在这个开源项目中,这种方法已经在其他几个地方使用过。这究竟有什么优势?在C ++中是否有这种方法的名称?

0 个答案:

没有答案