Erreur undefined reference to 'ma_fonction(std::string*, int)'
Résolu
matmat42
Messages postés
138
Statut
Membre
-
matmat42 Messages postés 138 Statut Membre -
matmat42 Messages postés 138 Statut Membre -
Salut,
Je suis en train de faire un petit code en C++ et j'ai rencontrer un petit problème :
Quand je compile le code suivant, j'ai l'erreur suivante :
"undefined reference to 'ma_fonction(std::string*, int)' "
ma_fonction.h :
ma_fonction.cpp :
et mon main.cpp :
Je n'ai pas mis le code en entier mais la variable 'texte' est de type string et 'taille' de type int.
Quelqu'un saurait-il résoudre mon problème ? Merci d'avance. :)
Celui qui pose une question est bête cinq minute, celui qui n'en pose pas l'est toute sa vie.
Je suis en train de faire un petit code en C++ et j'ai rencontrer un petit problème :
Quand je compile le code suivant, j'ai l'erreur suivante :
"undefined reference to 'ma_fonction(std::string*, int)' "
ma_fonction.h :
void ma_fonction(std::string recu[], int tailleRecu = 0);
ma_fonction.cpp :
#include "ma_fonction.h"
#include <windows.h>
#include <string>
#include <iostream>
using namespace std;
void ma_fonction(string recu[], int tailleRecu())
{
}
et mon main.cpp :
#include <iostream>
#include <windows.h>
#include <string>
#include "ma_fonction.h"
using namespace std;
int main()
{
//reste du code
ma_fonction(texte, taille);
//reste du code
}
Je n'ai pas mis le code en entier mais la variable 'texte' est de type string et 'taille' de type int.
Quelqu'un saurait-il résoudre mon problème ? Merci d'avance. :)
Celui qui pose une question est bête cinq minute, celui qui n'en pose pas l'est toute sa vie.
1 réponse
-
Bonjour
dans ma_fonction.h :void ma_fonction(std::string recu[], int tailleRecu = 0);
dans ma_fonction.cpp :void ma_fonction(string recu[], int tailleRecu())
Ton prototype dit que le deuxième paramètre est un entier, alors que dans la définition le second paramètre est une fonction (qui rend un entier)-
-
Ce n'est pas à moi de te dire ce que tu dois mettre : je te montre juste que ta déclaration et ta définition sont incohérents et que c'est pourquoi tu avais ce message.
Mais c'est à toi de savoir de quel paramètre tu as réellement besoin, je ne peux pas le deviner sans savoir à quoi sert ta fonction ni comment elle est écrite.
Pas plus que je ne peux te parler de ta nouvelle erreur : je n'ai pas une assez bonne vue pour lire ce qui s'affiche sur ton écran, et tu ne recopies pas le message d'erreur ici. -
-
La première erreur vient du fait que la valeur par défaut (=0) ne doit être précisée que dans le prototype de la fonction et non dans la déclaration, comme il est expliqué ici
https://www.commentcamarche.net/contents/188-langage-c-les-fonctions
au paragraphe 'Valeur par défaut des arguments'
Je ne vois pas à quoi correspond le second message d'erreur, c'est peut-être une conséquence du premier -
-