problème de constructeur sous vc

problème de constructeur sous vc - Programmation

Marsh Posté le 15-06-2002 à 18:14:19    

j'ai l'erreur suivante
error C2512: 'Personne' : no appropriate default constructor available
 
pourtant j'ai bien un construteur personne....
 
 
ça fait un temps que j'ai pas fait de c++
 
Mon constructeur de personne
Personne::Personne(char pnom[30], char pprenom [30],char ptelephone[10], char padresse[40])
{
  strcpy(nom,pnom);
  strcpy(prenom,pprenom);
  strcpy(telephone,ptelephone);
  strcpy(adresse,padresse);
};
 
 
mon constructeur de client
 
Client::Client(char cnom[30],char cprenom[30],char ctelephone[30],  
        char cadresse[30],int  cage, char cno_carte[30]):
        Personne(cnom,cprenom,ctelephone, cadresse){
 age = cage;
 strcpy(no_carte,cno_carte);
};
 
client hérite de personne
 
voici mon main
 
void main()
{
  Personne pers[2]; //erreur du constructeur ici
  Client client("smith","jim","637-7338","113 arbre",23,"23_mc" );
  pers[0]=client;
}
 
 
personne a une méthode abstraite donc je ne peux instancié personne
 
je voulais en gros créer des clients... et ensuite utiliser le polymorphisme
 
quelqu'un sait c'est quoi le problème et comment le corriger?


---------------
Borland rulez: http://pages.infinit.net/borland
Reply

Marsh Posté le 15-06-2002 à 18:14:19   

Reply

Marsh Posté le 15-06-2002 à 18:23:31    

Personne pers[2]; //erreur du constructeur ici
 
Normal que ça foire, Personne doit posséder un constructeur sans paramètre si tu veux l'instancier dans un tableau.
 
Si tu veux stocker des instances de sous-classe de Personne, tu crées un tableau de Personne* et tu le remplis avec des "new Client(...)"


Message édité par smaragdus le 15-06-2002 à 18:25:03
Reply

Marsh Posté le 15-06-2002 à 18:27:09    

Tu dois toujours avoir un constructeur sans paramètres, même si tu ne t'en sers pas, ce qui n'est pas ton cas.


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 15-06-2002 à 18:27:27    

grilled :d


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 15-06-2002 à 18:42:38    

ok j'ai arrangé le constructeur
 
toujours dans mon main
 
Personne *pers[2];
Client pers[0] = new client("smith","jim","637-7338","113 arbre",23,"23_mc" );
 
ça c'est pas la bonne solution :)
g 3 millions d'erreur
 
comment faire?


---------------
Borland rulez: http://pages.infinit.net/borland
Reply

Marsh Posté le 15-06-2002 à 18:43:36    

os2 a écrit a écrit :

ok j'ai arrangé le constructeur
 
toujours dans mon main
 
Personne *pers[2];
Client pers[0] = new client("smith","jim","637-7338","113 arbre",23,"23_mc" );
 
ça c'est pas la bonne solution :)
g 3 millions d'erreur
 
comment faire?  




 
 :pt1cable:  
C'est pers[0] = new Client(....)
 
Je te conseille de lire un bon bouquin sur le C++ pour commencer.


Message édité par smaragdus le 15-06-2002 à 18:49:02
Reply

Marsh Posté le 15-06-2002 à 18:50:32    

je pense surtout qu'il a du faire du Java avant !


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 15-06-2002 à 18:51:42    

Harkonnen a écrit a écrit :

je pense surtout qu'il a du faire du Java avant !  




 
Euh même en java, on ne déclare pas 2 fois le même tableau  :heink:

Reply

Marsh Posté le 15-06-2002 à 18:54:23    

ah oui, merde, c'est un tableau !
j'avais pas fait gaffe  :cry:


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 15-06-2002 à 18:57:19    

oui j'ai fait un peu de java auparavant...
mais j'ai fait beaucoup plus de c et de delphi
 
Personne *pers[2];
pers[0] = new Client("smith","jim","637-7338","113 arbre",23,"23_mc" );
 
maintenant j'ai
error C2243: 'type cast' : conversion from 'class Client *' to 'class Personne *' exists, but is inaccessible


---------------
Borland rulez: http://pages.infinit.net/borland
Reply

Marsh Posté le 15-06-2002 à 18:57:19   

Reply

Marsh Posté le 15-06-2002 à 19:04:03    

os2 a écrit a écrit :

oui j'ai fait un peu de java auparavant...
mais j'ai fait beaucoup plus de c et de delphi
 
Personne *pers[2];
pers[0] = new Client("smith","jim","637-7338","113 arbre",23,"23_mc" );
 
maintenant j'ai
error C2243: 'type cast' : conversion from 'class Client *' to 'class Personne *' exists, but is inaccessible  




 
class Client : public Personne
{
//etc...
};
 
 
http://www.fnac.com/Shelf/article. [...] Ra=-1&To=0

Reply

Marsh Posté le 15-06-2002 à 19:08:04    

ok merci, j'avais pas mis de public...
 
ça fonctionnait sans problème auparavant jusqu'à j'utilise personne directement pour le polymorphisme....
 
vc est une vrai passoire il me semble non?
je préfère bcb


---------------
Borland rulez: http://pages.infinit.net/borland
Reply

Marsh Posté le 15-06-2002 à 19:09:15    

os2 a écrit a écrit :

ok merci, j'avais pas mis de public...
 
ça fonctionnait sans problème auparavant jusqu'à j'utilise personne directement pour le polymorphisme....
 
vc est une vrai passoire il me semble non?
je préfère bcb  




 
Et ben retourne à BCB si c'est mieux  :sarcastic:

Reply

Marsh Posté le 15-06-2002 à 19:12:04    

quelqu'un se rappele de l'examen compilo c++ de borland qui ressemblait à vc...
 
j'utilisait ça il y a quelque années c'était pas bcb...
me rappele pu du nom


---------------
Borland rulez: http://pages.infinit.net/borland
Reply

Marsh Posté le 15-06-2002 à 19:13:20    

peut pas retourner à bcb, je dois faire un tp et le prof a obliger qu'on utilise vc avec les mfc....
 
vc est tellement pas standard comparativement à bcb


---------------
Borland rulez: http://pages.infinit.net/borland
Reply

Marsh Posté le 15-06-2002 à 19:14:20    

os2 a écrit a écrit :

peut pas retourner à bcb, je dois faire un tp et le prof a obliger qu'on utilise vc avec les mfc....
 
vc est tellement pas standard comparativement à bcb  




 
Quand tu connaitras un peu mieux le C++, tu pourras commencer à critiquer...

Reply

Marsh Posté le 15-06-2002 à 19:27:07    

ben justement j'ai fait du c++ il a quelques année durant plusieurs mois....
mais j'ai pu eu en n'en faire jusqu'à aujourd'hui...
 
pas besoin d'avoir un doc pour savoir que vc est respecte pas vraiment les normes établies....
 
de plus ché pas mais les mfc comparativement à la vcl.... mfc est loin derrière...
la librairie de borland est nettement plus logique...
 
de plus bcb existera sous linux très bientôt...
 
borland fait toujours en sorte d'adopte les nouvelles technologie même celle de son rival... ce qui n'est vraiment pas le cas de ms

Smaragdus a écrit a écrit :

 
 
Quand tu connaitras un peu mieux le C++, tu pourras commencer à critiquer...  




---------------
Borland rulez: http://pages.infinit.net/borland
Reply

Marsh Posté le 16-06-2002 à 14:31:55    

os2 a écrit a écrit :

 
 
pas besoin d'avoir un doc pour savoir que vc est respecte pas vraiment les normes établies....




 
Lis un bouquin sur le c++, tu apprendras que le modifieur par défaut d'une dérivation est private... alors tes critiques...  :sarcastic:
 
Quand aux VCL, c'est vrai qu'en terme de lourdeur, elles sont loin devant les MFC :lol:


Message édité par smaragdus le 16-06-2002 à 14:57:21
Reply

Marsh Posté le 16-06-2002 à 14:54:47    

os2 a écrit a écrit :

pas besoin d'avoir un doc pour savoir que vc est respecte pas vraiment les normes établies....




il ne faut tout de même pas exagérer... j'ai l'impression que tu confonds programmation Win32 et programmation ANSI !
 
en Win32, effectivement, les normes sont peu respectées : WinMain() au lieu de main(), etc... mais ce sont des normes fixées par le système et non par le compilateur. Sous BCB, c'est la même chose !
 
en ANSI, VC++ fonctionne à merveille avec les normes standard !
 
alors bon, il ne faut pas faire d'anti Microsoft primaire... quant au débat VCL/MFC, il a déja été abordé maintes fois dans ce forum, inutile de dévier du sujet...


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 16-06-2002 à 18:56:57    

Je suis un pro-linux a fond et pourtant, je trouve que Visual C++ 6.0 ( je connais pas les autres versions ) est un excellent logiciel de devellopement, pratique et tout. Microsoft fait de très bon logiciel de devellopement. Tu peut si tu veut utiliser les MFC mais si tu ne veut pas tu peut t'en passer tout aussi facilement ( j'entend par la que t'est pas obligé d'allez cocher un option perdu au fin fond de 40 sous menu imbriqué ). En plus le compilo est de bonne qualité. Franchement on peut pas lui reprocher grand chose je trouve. Attention j'ai pas dis que tout les autres IDE c'était de la merde, j'ai juste dis que VC++ est bien.
 
 
Au fait ca marche maintenant ton prog ?

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed