Erreur de compilation!
Résolu/Fermé
ihssane it9ane
Messages postés
55
Date d'inscription
vendredi 30 janvier 2009
Statut
Membre
Dernière intervention
5 août 2009
-
27 févr. 2009 à 23:44
ihssane it9ane Messages postés 55 Date d'inscription vendredi 30 janvier 2009 Statut Membre Dernière intervention 5 août 2009 - 28 févr. 2009 à 00:22
ihssane it9ane Messages postés 55 Date d'inscription vendredi 30 janvier 2009 Statut Membre Dernière intervention 5 août 2009 - 28 févr. 2009 à 00:22
A voir également:
- Erreur de compilation!
- Erreur 0x80070643 - Accueil - Windows
- Erreur 0x80070643 Windows 10 : comment résoudre le problème de la mise à jour KB5001716 - Accueil - Windows
- Erreur 1001 outlook - Accueil - Bureautique
- Erreur 3000 france tv - Forum Lecteurs et supports vidéo
- Erreur 3005 france tv - Forum TV & Vidéo
3 réponses
sebastien61
Messages postés
495
Date d'inscription
mardi 6 juin 2006
Statut
Membre
Dernière intervention
28 septembre 2010
59
27 févr. 2009 à 23:48
27 févr. 2009 à 23:48
Salut,
est-ce que ton objet imat a été déclaré ? Est-ce que son type est (re-)connu par le compilateur ?
est-ce que ton objet imat a été déclaré ? Est-ce que son type est (re-)connu par le compilateur ?
sebastien61
Messages postés
495
Date d'inscription
mardi 6 juin 2006
Statut
Membre
Dernière intervention
28 septembre 2010
59
28 févr. 2009 à 00:02
28 févr. 2009 à 00:02
De rien, bon courage à toi !
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 842
28 févr. 2009 à 00:02
28 févr. 2009 à 00:02
Salut,
Ah oui, je comprends pourquoi le compilateur crie ^^.
Déjà, il faut éviter le mélange C/C++.
En C++ évite les char*, et on utilise plus volontiers la classe String. Donc, plus besoin de strcpy et compagnie.
A la fin de la définition de ta classe, effectivement, tu as oublié un point-virgule.
Le prototype de main est int main(void); et renvoie 0 lorsque tout va bien.
Et enfin, il vaut mieux inclure iostream et non iostream.h pour importer le tout dans le namespace std.
Reposte le code une fois toutes ses erreurs corrigées si ça ne compile toujours pas.
Cdlt
Ah oui, je comprends pourquoi le compilateur crie ^^.
Déjà, il faut éviter le mélange C/C++.
En C++ évite les char*, et on utilise plus volontiers la classe String. Donc, plus besoin de strcpy et compagnie.
A la fin de la définition de ta classe, effectivement, tu as oublié un point-virgule.
Le prototype de main est int main(void); et renvoie 0 lorsque tout va bien.
Et enfin, il vaut mieux inclure iostream et non iostream.h pour importer le tout dans le namespace std.
Reposte le code une fois toutes ses erreurs corrigées si ça ne compile toujours pas.
Cdlt
sebastien61
Messages postés
495
Date d'inscription
mardi 6 juin 2006
Statut
Membre
Dernière intervention
28 septembre 2010
59
28 févr. 2009 à 00:08
28 févr. 2009 à 00:08
Tu peux utiliser un new char en C++, t'es pas obligé de faire un malloc. Utiliser les char est également possible en C++.
Mais c'est vrai qu'avec des std::string au lieu de char*, tu t'embêterais probablement moins...
Mais c'est vrai qu'avec des std::string au lieu de char*, tu t'embêterais probablement moins...
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 842
>
sebastien61
Messages postés
495
Date d'inscription
mardi 6 juin 2006
Statut
Membre
Dernière intervention
28 septembre 2010
28 févr. 2009 à 00:16
28 févr. 2009 à 00:16
Oui, tu peux utiliser les char en C++. Mais, autant utiliser les String quand c'est possible. Cela est mieux gérer en interne.
ihssane it9ane
Messages postés
55
Date d'inscription
vendredi 30 janvier 2009
Statut
Membre
Dernière intervention
5 août 2009
28 févr. 2009 à 00:14
28 févr. 2009 à 00:14
oui j'ai ajouté le point virgule et ça marche.
pour le main ça marche sans mettre le type.
pour le iostream sans .h la compilation a reussi mais il y a un message
`cout' undeclared (first use this function) .
enfin merci pour l'interet que vous avez accordé a mon message.
pour le main ça marche sans mettre le type.
pour le iostream sans .h la compilation a reussi mais il y a un message
`cout' undeclared (first use this function) .
enfin merci pour l'interet que vous avez accordé a mon message.
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 842
>
ihssane it9ane
Messages postés
55
Date d'inscription
vendredi 30 janvier 2009
Statut
Membre
Dernière intervention
5 août 2009
28 févr. 2009 à 00:20
28 févr. 2009 à 00:20
pour le main ça marche sans mettre le type.
Oui, mais cela ne respecte pas la norme. Si tu veux respecter la norme, alors faut mettre int devant ;).
`cout' undeclared (first use this function) .
Oui, en incluant iostream, cout se trouve dans l'espace de nom std. Il faut donc faire std::cout.
Ou alors, mettre using namespace std; en début. Ce qui te permettra d'utiliser cout simplement. Mais à ne pas faire dans les .h, enfin, ce n'est pas une bonne pratique.
Oui, mais cela ne respecte pas la norme. Si tu veux respecter la norme, alors faut mettre int devant ;).
`cout' undeclared (first use this function) .
Oui, en incluant iostream, cout se trouve dans l'espace de nom std. Il faut donc faire std::cout.
Ou alors, mettre using namespace std; en début. Ce qui te permettra d'utiliser cout simplement. Mais à ne pas faire dans les .h, enfin, ce n'est pas une bonne pratique.
ihssane it9ane
Messages postés
55
Date d'inscription
vendredi 30 janvier 2009
Statut
Membre
Dernière intervention
5 août 2009
>
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
28 févr. 2009 à 00:22
28 févr. 2009 à 00:22
merci
27 févr. 2009 à 23:52
#include<conio.h>
#include<string.h>
#include<iostream.h>
#include<stdlib.h>
#include<time.h>
class voiture
{
char * imat;
char * mod;
public:
voiture(char*,char*);
voiture(voiture&);
void afficher();
}
voiture::voiture(char *a,char *b)
{ imat= new char[strlen(a)+1];
mod= new char[strlen(b)+1];
strcpy(imat,a);
strcpy(mod,b);
}
voiture :: voiture(voiture&v)
{ imat= new char[strlen(v.imat)+1];
mod= new char[strlen(v.mod)+1];
strcpy(imat,v.imat);
strcpy(mod,v.mod);
}
void voiture :: afficher()
{
cout<<"imat"<<"\t \t \t " <<"mod"<<"\n";
cout<<imat<<"\t \t \t " <<mod<<"\n";
}
main()
{voiture v1("999","bmw");
voiture v2("9889","toyota");
}
27 févr. 2009 à 23:56
J'espère que ça va t'aider mais il me semble que ce genre de petite erreur est assez pénible et provoque des erreurs bisarres...
28 févr. 2009 à 00:00
ces mes premieres tp de programmation.