【问题标题】:Can't call a static function [closed]无法调用静态函数[关闭]
【发布时间】:2014-06-16 07:55:02
【问题描述】:

我在标题traductionCSV.h 中声明了函数

static QVector<struct variableDurSupervision>
    listVariableDurSupervison(std::string fichierCSV);

我把它写在我的cpp中,然后我想在另一个文件supervision.cpp中使用它,所以我这样称呼它:

remplirDurCellule(
    traductionCSV::listVariableDurSupervison(
        "../../FichierCSV/ListeVariableSupervision.csv"
    )
);

但它不起作用,我收到了这个错误:

未定义对 traductionCSV::listVariableDurSupervison(std::string) 的引用

我正确地包含了所有文件,所以我不明白。

谢谢。

【问题讨论】:

  • 你至少可以发布 supervisor.cpp 吗?
  • traductionCSV 是一个类吗?函数listVariableDurSupervison 是它类的方法还是只是一个“免费”函数?
  • '未定义的引用'通常意味着你还没有实现函数的主体,或者至少没有用完全正确的方法签名来实现它。

标签: c++ qt static-methods


【解决方案1】:

当您在 cpp 中定义类名时,您可能会丢失类名。应该是这样的:

QVector<struct variableDurSupervision> traductionCSV::listVariableDurSupervison(std::string fichierCSV)
{
    ...
}

此规则适用于类的静态和非静态函数。

【讨论】:

  • 傻我,原来是这个!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多