Qt4.7のデフォルトのコンストラクタ
2169 ワード
Qtを初めて学び、各例が持つ構造関数を発見した.
Network.hヘッダファイル
Network.cpp
Networkクラスをインスタンス化する場合は、
Network network;
デフォルトコンストラクタを呼び出すことができます.デフォルトパラメータQObject*parentの値を書く必要はありません.
「デフォルトのパラメータは、関数パラメータテーブルの一番右(末尾)のパラメータでなければなりません.
2つ以上のデフォルトの実パラメータを持つ関数を呼び出す場合、パラメータテーブルの一番右のパラメータではない場合は、そのパラメータの右のすべてのパラメータも省略します.
デフォルトのパラメータは、関数名が最初に表示されたときに指定する必要があります.通常、関数のプロトタイプにあります.
たとえば次の関数
int fun(int a,int b,int c=3)
{
}
cは指定されたデフォルトの実パラメータであり、通常は関数プロトタイプで指定されます.ここでは3をデフォルトパラメータとして与えます.通常の時にこの関数fun(4,5,6)を呼び出す.では、a=4、b=4、c=6です.このようにfun(1,2)を呼び出すと、a=1,b=2,c=3となり、ここでcは指定されていない.cはデフォルト実パラメータであり、すでにデフォルト値があり、ここでcはデフォルト値3を採用する.
デフォルトの実パラメータは、関数パラメータテーブルの一番右のパラメータでなければならない理由です.上の関数を直す
int fun(int a=3,int b,int c)
{}
このようにfun(1,2)を呼び出すと,a=1,b=2となり,cは値を与えずにエラーとなる.これらのパラメータはすべて1つ1つ対応している.
参考記事:
C/C+--C++のデフォルトパラメータとその二義性
Network.hヘッダファイル
#include "NetServerThread.h"
class Network : public QObject
{
Q_OBJECT
public:
Network(QObject *parent = 0); // QObject *parent ,
// Network
~Network();
};
Network.cpp
#include "NetServerThread.h"
Network::Network(QObject *parent)// QObject parent,
:QObject(parent) // QObject 。
{ // , Network network;
qDebug()<<" ";
//
init();
}
Network::~Network()
{
}
Networkクラスをインスタンス化する場合は、
Network network;
デフォルトコンストラクタを呼び出すことができます.デフォルトパラメータQObject*parentの値を書く必要はありません.
「デフォルトのパラメータは、関数パラメータテーブルの一番右(末尾)のパラメータでなければなりません.
2つ以上のデフォルトの実パラメータを持つ関数を呼び出す場合、パラメータテーブルの一番右のパラメータではない場合は、そのパラメータの右のすべてのパラメータも省略します.
デフォルトのパラメータは、関数名が最初に表示されたときに指定する必要があります.通常、関数のプロトタイプにあります.
たとえば次の関数
int fun(int a,int b,int c=3)
{
}
cは指定されたデフォルトの実パラメータであり、通常は関数プロトタイプで指定されます.ここでは3をデフォルトパラメータとして与えます.通常の時にこの関数fun(4,5,6)を呼び出す.では、a=4、b=4、c=6です.このようにfun(1,2)を呼び出すと、a=1,b=2,c=3となり、ここでcは指定されていない.cはデフォルト実パラメータであり、すでにデフォルト値があり、ここでcはデフォルト値3を採用する.
デフォルトの実パラメータは、関数パラメータテーブルの一番右のパラメータでなければならない理由です.上の関数を直す
int fun(int a=3,int b,int c)
{}
このようにfun(1,2)を呼び出すと,a=1,b=2となり,cは値を与えずにエラーとなる.これらのパラメータはすべて1つ1つ対応している.
参考記事:
C/C+--C++のデフォルトパラメータとその二義性