天天看點

Qt重寫預設構造函數

QT中預設的構造函數定義如下:

#include "NetServerThread.h"

class Network : public QObject
{
    Q_OBJECT

public:
    Network(QObject *parent = 0); //因為QObject *parent為預設參數已經指派,是以此構造
                                                 //函數為 Network類的預設構造函數
    ~Network();
};
           
#include "NetServerThread.h"

Network::Network(QObject *parent)//這裡寫的構造函數的參數是為了初始化QObject參數parent,
   :QObject(parent)       //這樣它可以繼承父類QObject初始化的所有資料。                                                  
{                              //該預設構造函數,執行個體化類時候隻需要 Network network;
    //初始化對象
    init();
}

Network::~Network()
{
}
           

其中,構造函數聲明中的QObject *parent = 0表示預設參數,如果構造函數中還有其他參數,則應該滿足:預設參數必須是函數參數清單中最右邊的參數,而且聲明的時候,預設參數可以不添加。

是以,如果想在上面的構造函數中添加其他的參數,則構造函數應該這麼寫:

#include "NetServerThread.h"

class Network : public QObject
{
    Q_OBJECT

public:
    Network(QString name,QObject *parent = 0); //因為QObject *parent為預設參數已經指派,是以此構造
                                                 //函數為 Network類的預設構造函數
    ~Network();
};
           

将新添加的參數放在左邊,預設參數放在右邊。

繼續閱讀