Erreur de compilation!
Résolu
ihssane it9ane
Messages postés
55
Date d'inscription
Statut
Membre
Dernière intervention
-
ihssane it9ane Messages postés 55 Date d'inscription Statut Membre Dernière intervention -
ihssane it9ane Messages postés 55 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
j travaille avec dev c++ une erreur de compilation que j'ai pas compris " new types may not be defined in a return type "
l'erreur est dans la ligne "imat= new char[ strlen(i)+1];"
merci.
j travaille avec dev c++ une erreur de compilation que j'ai pas compris " new types may not be defined in a return type "
l'erreur est dans la ligne "imat= new char[ strlen(i)+1];"
merci.
A voir également:
- Erreur de compilation!
- Erreur 0x80070643 - Accueil - Windows
- Erreur 4101 france tv - Forum Lecteurs et supports vidéo
- J'aime par erreur facebook notification - Forum Facebook
- Code erreur f3500-31 ✓ - Forum Bbox Bouygues
- Java code erreur 1603 ✓ - Forum Windows
3 réponses
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 ?
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
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.
#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");
}
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...
ces mes premieres tp de programmation.