web-dev-qa-db-fra.com

variable ou champ déclaré vide

J'ai une fonction appelée:

void initializeJSP(string Experiment)

Et dans mon fichier MyJSP.h, j'ai:

2: void initializeJSP(string Experiment);

Et quand je compile, j'obtiens cette erreur:

MyJSP.h: erreur 2: variable ou champ initializeJSP déclaré vide

Où est le problème?

44
Eduardo

Cela se passe par exemple dans ce cas ici:

void initializeJSP(unknownType Experiment);

Essayez d'utiliser std::string au lieu de simplement string (et incluez l'en-tête <string>). Les classes de bibliothèque C++ Standard se trouvent dans l'espace de noms std::.

69

Ce n'est pas réellement un problème avec la fonction étant "void", mais un problème avec les paramètres de la fonction. Je pense que c'est juste g ++ donnant un message d'erreur inutile.

31
Paul Price

Le fait est que, lorsque vous appelez une fonction, vous ne devez pas écrire le type de la fonction, cela signifie que vous devez appeler la fonction de la même façon. 

initializeJSP(Experiment);
0
Daniel Montaña

D'autres réponses ont donné des réponses très précises et je ne sais pas exactement quel était votre problème (s'il s'agissait simplement d'un type inconnu dans votre programme, vous auriez alors reçu beaucoup plus d'erreurs claires avec celle que vous avez mentionnée) si vous ajoutez d'autres informations, cette erreur est également générée si nous ajoutons le type de fonction à vide tout en l'appelant, comme vous pouvez le voir plus bas:

#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";
}

Erreur:

 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)) ===|

Comme nous pouvons le voir à partir de cet exemple, cette raison peut également générer l'erreur "variable ou champ déclaré vide".

0
RSSB