我有一个叫做的函数:
void initializeJSP(string Experiment)
在我的MyJSP.h文件中,我有:
2: void initializeJSP(string Experiment);
当我编译时,我收到此错误:
MyJSP.h:2错误:变量或字段initializeJSP声明为void
问题出在哪里?
答案 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;
}
如果是这样,则应删除最后一个空白。