Error: variable or field declared void sous code:block Windows C++

Topnotch Messages postés 22 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 22 août 2008 - 15 juil. 2008 à 14:35
Topnotch Messages postés 22 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 22 août 2008 - 15 juil. 2008 à 17:04
Bonjour!

Je tente de construire une fonction dans une classe qui ouvre un fichier. Dans le fichier .h, le compilateur me retourne un message d'erreur comme ceci:

error: variable or field 'OpFile' declared void.     OpFile est le nom de ma fonction.

Voici le debut du code du fichier CFile.cpp:                                                     Voici le code du fichier  CFile.h:

void CFile::OpFile(string fichierRead, string OpenMode)                                  void OpFile(string std::fichierRead, string std::OpenMode);
{
     ifstream fichierRead;
     ofstream fichierWrite;
     ofstream fichierAppend;

Bien que je ne donne pas beaucoup de code, la fonction CFile.cpp étant assez grosse, j'aimerais savoir si quelqu'un aurait une idée de la signification de ce type d'erreur. (  error: variable or field 'OpFile' declared void )

Merci pour votre aide
A voir également:

7 réponses

SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
15 juil. 2008 à 16:15
"void CFile::OpFile(string fichierRead, string
OpenMode)                                  void OpFile(string
std::fichierRead, string std::OpenMode);"

C'est quoi ça ? Pourquoi tu déclares ta fonction 2 fois ? Une avec le nom de classe l'autre sans sur la même ligne en plus puis finalement se terminant par un ; ?

C'est une erreur de copier coller ?
Sinon, si OpFile est une méthode d'une classe, vire la seconde déclaration. Si c'est une fonction, vire la première. Vire aussi, dans tout les cas, le ;. Ça n'a rien à faire là.

C++ (@++)<!--
0
BunoCS Messages postés 15461 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 13 février 2024 103
15 juil. 2008 à 16:17
Hello,
Il n'y aurait pas une inversion? Genre: "std::string fichierRead" au lieu de "string std::fichierRead"?
Je dis pas que l'erreur vient de là...mais ptet
Est-ce que tu es sûr que ta fonction de retourne rien?

@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
0
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
15 juil. 2008 à 16:24
Y'a ça aussi en effet.

C++ (@++)<!--
0
Topnotch Messages postés 22 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 22 août 2008
15 juil. 2008 à 16:40
Bonjour J'apporte une correction à ma question: En fait, en voulant
être trop clair, j'ai manqué de clarté!!! le traitement de texte a écrit sur deux lignes.

Également, j'apporte un changement, il y avait inversion avec std::string.
J'ai changé ma méthode OuvrirFichier.

méthode OuvrirFichier du fichier .cpp:
void CFile::OuvrirFichier( ifstream unFichier, string nomFichier)
{
    // Code
}
méthode OuvrirFichier du fichier .h:
void OuvrirFichier( ifstream unFichier, std::string nomFichier);

Le compilateur me retourne un message d'erreur:
error: variable or field 'OuvrirFichier' declared void

Merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
BunoCS Messages postés 15461 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 13 février 2024 103
15 juil. 2008 à 16:53
Est-ce que dans ton fichier .h, ta fonction est bien déclarée dans ta classe CFile?
Si oui, est-ce que si tu commentes le code de la fonction tu as la même erreur?

@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
0
SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
15 juil. 2008 à 16:53
C'est ta classe au complet dont tu dois déclarer le prototype, pas seulement une de ses méthodes.

class CFile {
    private:
       int quelquechose;

    public:
       CFile();
       ~CFile();

       void OuvrirFichier(ifstream unFichier, string nomFichier);
       int autrechose(int qwerty);

       etc. etc. etc.
}

C++ (@++)<!--
0
Topnotch Messages postés 22 Date d'inscription vendredi 13 mai 2005 Statut Membre Dernière intervention 22 août 2008
15 juil. 2008 à 17:04
Mes méthodes et mes variables sont bien déclarées. Les méthodes fonctionnent bien.
C'est seulement lorsque je tente de changer un paramètre de ma méthode pour un
objet ifstream, que ça écrit ce message d'erreur. C'est de même pour toutes les
méthodes pour lesquelles je veux mettre ce paramètre.

Merci encore pour votre aide, je vais tenter autre chose.

Topnotch
0
Rejoignez-nous