QList 默认参数错误消息(QList<QVariant> 的默认参数类型为 int)

use*_*063 1 c++ parameters methods qt default-parameters

我有以下方法(只有 1 个参数),我想适应用于 1 个以上的参数。我尝试使用默认参数,但这不起作用。(仅使用旧方法的原始代码工作正常)令我印象深刻的是该声明中省略了变量名称。为什么 ?

这是我原来的方法:

void importFile(QString *);
Run Code Online (Sandbox Code Playgroud)

这是我的新方法:

 void importFile(QString *, QList<QVariant> IMPORT_FILE_PARAMETERS =0 );
Run Code Online (Sandbox Code Playgroud)

当我编译这段代码时,Qt 告诉我“ QList IMPORT_FILE_PARAMETERS 的默认参数的类型为 int

问题是什么?我不使用 int - 他为什么要告诉我有关 int 的信息?

谢谢你的帮助

Som*_*ken 5

QList<QVariant> IMPORT_FILE_PARAMETERS =0
Run Code Online (Sandbox Code Playgroud)

这没有任何意义。您将0(这是一个int,如您的错误消息中所示)作为 a 的默认参数QList,尝试将其改为默认构造列表:

QList<QVariant> IMPORT_FILE_PARAMETERS = QList<QVariant>()
Run Code Online (Sandbox Code Playgroud)

至于

令我印象深刻的是该声明中省略了变量名称。为什么 ?

编译器根本不关心声明中的名称,它只需要知道参数类型。您也可以在函数的定义中省略它,但是您将无法访问该参数。