变量或字段声明为void

时间:2008-12-12 21:31:33

标签: c++ string void

我有一个叫做的函数:

void initializeJSP(string Experiment)

在我的MyJSP.h文件中,我有:

2: void initializeJSP(string Experiment);

当我编译时,我收到此错误:

  

MyJSP.h:2错误:变量或字段initializeJSP声明为void

问题出在哪里?

5 个答案:

答案 0 :(得分:70)

例如,在这种情况下会发生这种情况:

void initializeJSP(unknownType Experiment);

尝试使用std::string而不只是string(并包含<string>标头)。 C ++标准库类位于命名空间std::内。

答案 1 :(得分:31)

这实际上不是函数为“void”的问题,而是函数参数的问题。我认为只是g ++给出了一个无用的错误信息。

答案 2 :(得分:1)

问题在于,当你调用一个函数时,你不应该写函数的类型,这意味着你应该像

那样调用函数。
initializeJSP(Experiment);

答案 3 :(得分:0)

其他答案给出了非常准确的答案,但我不完全确定您的问题到底出在哪里(如果这是由于程序中的未知类型引起的,那么您将得到更多清晰的错误以及所提到的错误)但是要补充更多信息,如果在调用函数时将函数类型添加为void,也会引发此错误,如下所示:

#include<iostream>
#include<vector>
#include<utility>
#include<map>
using namespace std;
void fun(int x);
main()
{
   int q=9;
   void fun(q); //line no 10
}
void fun(int x)
{
    if (x==9)
        cout<<"yes";
    else
        cout<<"no";
}

错误:

 C:\Users\ACER\Documents\C++ programs\exp1.cpp|10|error: variable or field 'fun' declared void|
||=== Build failed: 1 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===|

因此,从本示例中我们可以看到,这个原因也可能导致“变量或字段声明为空”错误。

答案 4 :(得分:-1)

在调用函数时是否置空了?

例如:

void something(int x){
    logic..
}

int main() {

    **void** something();

    return 0;

}

如果是这样,则应删除最后一个空白。