获得警告C4189"局部变量已初始化但未被引用"即使引用变量

时间:2014-05-28 04:45:16

标签: c++ qt

我有一段使用Qt的C ++代码,我尝试在命令提示符下运行批处理文件。我使用QProcess对象启动cmd.exe并执行我的批处理文件。以下是我使用的代码:

void Utility::executeBatchFile(QString batchFile)
{
    QProcess *process = new QProcess(this);
    QString cmdName = "cmd.exe";
    QStringList arguments;
    arguments<<"/k" << batchFile;
    process->startDetached(cmdName, arguments);
}

当我在Qt Creator中构建它时,我收到警告:

  警告:C4189:&#39;进程&#39; :局部变量已初始化但未引用

变量process在函数的最后一行引用,我无法弄清楚为什么会出现这个警告。

1 个答案:

答案 0 :(得分:17)

因为startDetached是静态成员函数。您被允许编写process->startDetached(...)以指示编译器将在其中查找成员名称的名称空间,而不是QProcess::startDetached(...)。但这两次调用是相同的;该调用不使用process的值。