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

QList default parameter error message (default argument for QList<QVariant> has type int)

本文关键字:QList 参数 默认 具有 int 类型 gt QVariant 消息 lt 错误      更新时间:2023-10-16

我有以下方法(它只有1个参数),我想适应使用超过1个参数。我尝试使用默认参数,但这不起作用。(只有旧方法的原始代码工作得很好)令我震惊的是,该声明中省略了变量名。为什么?

这是我原来的方法:

void importFile(QString *);

这是我的新方法:

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

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

有什么问题?我不用整型-他为什么要告诉我整型?

谢谢你的帮助

QList<QVariant> IMPORT_FILE_PARAMETERS =0

这没有意义。你给0(这是一个int,在你的错误信息)作为QList的默认参数,尝试使其成为一个默认的构造列表,而不是:

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

让我吃惊的是其中省略了变量名daclaration。为什么?

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

您的默认参数是"0",这是一个整数,对吗?

使用

:

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

这将使默认参数为空QList

QList不是int类型

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