代码之家  ›  专栏  ›  技术社区  ›  Eduardo

变量或字段声明为空

  •  44
  • Eduardo  · 技术社区  · 16 年前

    我有一个函数叫做:

    void initializeJSP(string Experiment)
    

    在myjsp.h文件中,我有:

    2: void initializeJSP(string Experiment);
    

    当我编译时,我得到了这个错误:

    myjsp.h:2错误:变量或字段initializejsp声明为void

    问题出在哪里?

    4 回复  |  直到 16 年前
        1
  •  69
  •   Johannes Schaub - litb    16 年前

    例如,在这种情况下:

    void initializeJSP(unknownType Experiment);
    

    试用使用 std::string 而不仅仅是 string (包括 <string> 标题)。C++标准库类位于命名空间内。 std:: .

        2
  •  31
  •   Paul Price    13 年前

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

        3
  •  0
  •   Brighter side user295691    6 年前

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

    initializeJSP(Experiment);
    
        4
  •  0
  •   RSSB    6 年前

    其他答案给出了非常准确的回答,我不完全确定您的问题到底是什么(如果只是由于程序中的未知类型,那么您可能会得到更多的明确的剪切错误以及您提到的错误),但要添加更多信息,如果我们将函数类型添加为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)) ===|
    

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