【发布时间】:2014-11-07 09:58:28
【问题描述】:
我在名为spiral.cpp 的C++ 源文件中定义了一个函数,我正试图从另一个名为manager.cpp 的C++ 源文件中调用该函数。但是,我收到一个编译错误,上面写着“非法调用非静态成员函数”。
我已经查看了出现此编译错误的原因,到目前为止我发现的所有内容似乎都告诉我,我需要在其定义中创建函数 static。但是,如果我这样做,则会收到一个编译错误,提示“不应在文件范围内定义的成员函数上使用'static'”。
函数在spiral.cpp中定义,代码为:
int spiralItem::updateCircuitNumber(void){
...
}
然后在manager.cpp 中调用它:
spiral::updateCircuitNumber();
谁能向我解释我在这里做错了什么?问题肯定与函数被错误地定义/调用为静态/非静态有关,还是其他原因?
【问题讨论】:
-
您确定要使用静态函数吗?至少名称暗示您正在操纵状态(
spiral实例(?)) -
不-我不确定我是否想要一个静态函数...这就是我问这个问题的原因...编译器告诉我某些东西需要是静态的-无论它是函数定义/调用/两者 - 我不确定。我真的不明白 static 是什么/做什么...
标签: c++ static function-declaration