【发布时间】:2017-03-07 08:02:36
【问题描述】:
我有以下方法(它只有 1 个参数),我想调整它以用于超过 1 个参数。我尝试使用默认参数,但这不起作用。 (仅使用旧方法的原始代码可以正常工作)让我印象深刻的是该声明中省略了变量名。 为什么?
这是我原来的方法:
void importFile(QString *);
这是我的新方法:
void importFile(QString *, QList<QVariant> IMPORT_FILE_PARAMETERS =0 );
当我编译这段代码时,Qt 告诉我“QList IMPORT_FILE_PARAMETERS 的默认参数具有 int 类型
有什么问题? 我不使用 int - 他为什么要告诉我有关 int 的信息?
感谢您的帮助
【问题讨论】:
-
在声明中 - 它只是不需要,编译器只需要类型,放一个名字只是为了人类可读性。在 C++ 文件中 - 如果您不使用该变量,您将不会收到未使用变量的警告。
-
您的标题与您似乎提出的问题几乎没有关系。但是如果你问一个问题会更容易。
-
考虑重载而不是使用默认参数。除非您的代码运行完全相同,无论
IMPORT_FILE_PARAMETERS是否是默认构造的,否则这很可能是更简洁的方法。
标签: c++ qt methods parameters default-parameters