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

时间:2016-10-25 10:09:08

标签: c++ qt methods parameters default-parameters

我有以下方法(只有一个参数),我想适应多于1个参数。我试图使用默认参数,但这不起作用。 (只有旧方法的原始代码工作正常)让我感到震惊的是,在该daclaration中省略了变量名。 为什么?

这是我原来的方法:

void importFile(QString *);

这是我的新方法:

 void importFile(QString *, QList<QVariant> IMPORT_FILE_PARAMETERS =0 );

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

有什么问题? 我不使用int - 他为什么要告诉我int?

感谢您的帮助

3 个答案:

答案 0 :(得分:4)

QList<QVariant> IMPORT_FILE_PARAMETERS =0

这没有任何意义。您将0(与错误消息中的int一样)作为QList的默认参数,尝试将其设为默认构造列表:

QList<QVariant> IMPORT_FILE_PARAMETERS = QList<QVariant>()

至于

  

让我感到震惊的是,在那里省略了变量名   daclaration。为什么?

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

答案 1 :(得分:2)

您的默认参数是&#34; 0&#34;,这是一个整数,对吗?

使用此:

void importFile(QString *, QList<QVariant> IMPORT_FILE_PARAMETERS = QList<QVariant>());

这会使默认参数为空QList

答案 2 :(得分:1)

QList不是int 您正在尝试为该类型分配值0(零),这是一个int。