Подтвердить что ты не робот

Переменная или поле объявлено недействительным

У меня есть функция, называемая:

void initializeJSP(string Experiment)

И в моем файле MyJSP.h у меня есть:

2: void initializeJSP(string Experiment);

И когда я скомпилирую, я получаю эту ошибку:

Ошибка MyJSP.h: 2: переменная или поле initializeJSP объявлено void

Где проблема?

4b9b3361

Ответ 1

Это, например, происходит здесь:

void initializeJSP(unknownType Experiment);

Попробуйте использовать std::string вместо string (и включите заголовок <string>). Стандартные классы библиотеки С++ находятся в пространстве имен std::.

Ответ 2

На самом деле это не проблема с функцией "void", а с параметрами функции. Я думаю, что это просто g++, дающее бесполезное сообщение об ошибке.

Ответ 3

Дело в том, что когда вы вызываете функцию, вы не должны писать тип функции, это означает, что вы должны вызывать функцию так же, как

initializeJSP(Experiment);

Ответ 4

Другие ответы дали очень точные ответы, и я не совсем уверен, в чем именно заключалась ваша проблема (если бы это было просто из-за неизвестного типа в вашей программе, то вы бы получили гораздо больше четких ошибок, чем упомянутое вами), но добавьте при дальнейшей информации эта ошибка также возникает, если мы добавляем тип функции как 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)) ===|

Таким образом, как мы видим из этого примера, эта причина также может привести к ошибке "переменная или поле объявлено пустым".

Ответ 5

Вы ставили void при вызове своей функции?

Например:

void something(int x){
    logic..
}

int main() {

    **void** something();

    return 0;

}

Если это так, вы должны удалить последнюю пустоту.