我有一个叫做的函数:
void initializeJSP(string Experiment)
在我的MyJSP.h文件中,我有:
2: void initializeJSP(string Experiment);
当我编译时,我收到此错误:
MyJSP.h:2 error: variable or field initializeJSP declared void
问题出在哪儿?
编译器在报告错误时指向哪一行代码? 你用的是什么语言? 该函数还有哪些其他代码? 请提供更多信息。
例如,这种情况发生在这里:
void initializeJSP(unknownType Experiment);
尝试使用std::string而不是string(并包含标头)。 C ++标准库类位于命名空间std::中。
这实际上不是函数为"void"的问题,而是函数参数的问题。我认为只是g ++给出了一个无用的错误信息。
虽然功能参数的问题是什么? (我知道接受的答案解释了它,我只是没有发现这个特别的答案特别有帮助)。
问题在于,当你调用一个函数时,你不应该写函数的类型,这意味着你应该像调用函数一样
initializeJSP(Experiment);
你的例子是错的,你不能用类型作为参数调用函数,而问题是关于其他的。
是的,像void func(int a);之类的东西不是函数调用。 但OP有一个不同的问题。
我不认为OP意味着什么。
其他答案给出了非常准确的答案,我不完全确定你的问题究竟是什么(如果它只是由于你的程序中的未知类型那么你会得到更多明确的错误以及你提到的那个)但是要添加在进一步的信息中,如果我们在调用函数时将函数类型添加为void,也会引发此错误,如下所示:
#include
#include
#include
#include
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<
else
cout<
}
错误:
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)) ===|
因此,正如我们从这个例子中看到的那样,这个原因也会导致"变量或字段声明为void"错误。
为了澄清:这个例子通过在第10行的函数调用之前添加(错误的)"void"来产生"声明的void"错误。
在调用你的函数时你有无效吗?
例如:
void something(int x){
logic..
}
int main() {
**void** something();
return 0;
}
如果是这样,您应该删除最后一个空格。