1

Qt のほとんどのクラスにはデフォルトのコンストラクターがあります。多くのクラスは、デフォルト値を持つコンストラクター引数としてQObject*orを取ります。このクラスにはas 引数を取るコンストラクタもありますが、デフォルト値はありません。したがって、デフォルトでは構築可能ではありません。何故ですか?本当に親が必要ですか?それとも、この矛盾を説明する点で他に何か違いがありますか?QWidget*nullptrQActionQObject*QActionQActionQAction

4

1 に答える 1

3

ここでは推測ですが、その背後に理由はないと思います。

Qt 4.8では、署名は(あなたが述べたように)親のデフォルト値がありません。

QAction(QObject * parent)

http://doc.qt.io/qt-4.8/qaction.htmlを参照

ただし、これはQt 5.7で変更されます

QAction(QObject *parent = nullptr)

http://doc.qt.io/qt-5/qaction.htmlを参照

したがって、Qt 5.7 で最終的に修正されたのは偶発的な不一致であったと思います。

于 2016-10-11T08:37:10.407 に答える