1

重複の可能性:
コンストラクターのこの奇妙なコロンメンバー構文は何ですか?

次の質問に対する迅速な回答が必要です。C++ クラス (QT 派生クラスですが、ここでは重要ではないと思います) についてです。

ヘッダー ファイルには、次の宣言があります。

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();

ソースファイルには次の定義があります。

MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent)
{
    QWidget * central = new QWidget(this);

質問は、C ++に関しては私の初心者をはっきりと示しているかもしれませんが、それは次のとおりです。

: QMainWindow(parent)コンストラクタの定義でそれはどういう意味ですか? ある種のデフォルトの初期化ですか?それは、コンストラクターが明示的であるという事実に関連していますか (私はそれが何を意味するのかをある程度把握していますが、詳細は把握していません)?

質問が非常に単純で初歩的かもしれないことは承知しています。どこから始めればよいかわかりません。

ありがとうございました。

編集:答えてくれたみんなに感謝します。

4

1 に答える 1

2

基本クラスからその特定のコンストラクターを呼び出します。

コンストラクターがであるとは何の関係もありませんexplicit。明示的とは、この場合、aQWidget*を暗黙的にオブジェクトに変換できないことを意味しMainWindowます。

単純に、オブジェクトを構築するには、パラメータとしてas:QMainWindow(parent)を受け取る基本クラスのコンストラクターを呼び出す必要があるということです。QWidget*

于 2012-05-03T09:34:08.073 に答える