Mon code est-il plus ou moins bon? :-S [Début en C++] - C++ - Programmation
Marsh Posté le 24-01-2006 à 18:52:52
Bon je suis pas très balaise en C++ mais le mieux ça serait que tu nous donne clairement les erreurs que tu obtients à la compilation
Marsh Posté le 24-01-2006 à 19:02:18
bah tout fonctionne à la compilation! et l'affichage également (sauf pour le p1 qui merde comme expliqué!)
mais c pas ca que j'aimerais savoir, c'est si le style est bon ou pas.... (genre si je devrais pas mettre des pointeurs à des endroit ou j'en ai pas mis!)
Marsh Posté le 24-01-2006 à 19:10:15
Code :
|
ça serait pas plutot :
Code :
|
J'était comme toi j'écoutais pas en cours, j'en ai pas fais depuis des mois alors je m'avance pas
Marsh Posté le 24-01-2006 à 19:14:36
j'ai test ca change à rien
ce qui est bizarre c'est que les "unknown" sont bien attribués (si j'enlève la ligne qui est en commentaire dans le constructeur, ca m'affiche "unknown" ), mais à l'affichage c pas digéré
Marsh Posté le 24-01-2006 à 19:26:39
Code :
|
heuh je suis clairement pas convaincu, la, jme demande si tu crée pas un objet Personne dans le vide. Set les valeurs a la main dans ce constructeur (ou fais une fonction pour ca)
Marsh Posté le 24-01-2006 à 19:45:53
ouais, mais pour setter les valeur je dois créer un objet... avant de pouvoir le faire! Donc je le ferais après le Personne("unknown", "unknown", 0); (car l'objet est crée, c'est sûr!) mais ca ferait carrément pas propre du tout je trouve :S
en java ca marche nickel en tout cas
enfin vais test
Marsh Posté le 24-01-2006 à 19:56:27
ReplyMarsh Posté le 24-01-2006 à 20:06:31
bah oui... mais ca se répète avec le 2e constructeur... pas génial!
mais ca marche définitivement pas en appelant le 2e constructeur
Marsh Posté le 24-01-2006 à 20:07:53
le_duc a écrit : ouais, mais pour setter les valeur je dois créer un objet... |
Oui. Et dès que tu es entré dans le corp du constructeur, ton objet est déja crée, initialisé ou non ...
Citation : Donc je le ferais après le Personne("unknown", "unknown", 0); (car l'objet est crée, c'est sûr!) |
Non. Tu crées un temporaire, et tu ne t'en sers même pas.
Marsh Posté le 24-01-2006 à 20:14:38
sankukai8 a écrit :
|
Au secour ! ( et encore c'est le plus beau constructeur de ce thread )
Code :
|
Code :
|
( J'ai utilisé std::string au lieu de AnsiString, elle n'est généralement pas assez mauvaise pour en utiliser une autre )
Marsh Posté le 24-01-2006 à 20:22:51
Quelques corrections en vrac :
Code :
|
Marsh Posté le 24-01-2006 à 20:46:26
yes!!!
merci beaucoup ++fab!
vais appliquer tout ca et me renseigner sur les trucs que je capte pas genre les "&" ou le virtual :S
merci pour tes corrections.
Marsh Posté le 24-01-2006 à 20:59:36
donc je dois aussi ajouter
Code :
|
pige pas trop ce "const" non plus...
(java c'est la rigolade à coté de C++ )
Marsh Posté le 24-01-2006 à 21:01:14
c'est juste pour signifier que ta fonction ne modifiera pas ses membres. Ca sert si plus tard tu as :
const Personne * truc = ...
le compilo t'interdira de modifier une var membre de truc, et d'appeler toute fonction non const de Personne. Mettre des consts la ou nécessaire est (imho) une bonne habitude a prendre
Marsh Posté le 24-01-2006 à 21:32:37
pour Virtual j'ai touvé ca sur developpez.net:
"Le mot-clé virtual permet de supplanter une fonction membre d'une classe parent depuis une classe dérivée (à condition qu'elle ait la même signature)."
je me demande alors pourquoi j'ai besoin d'un virtual devant void Affiche() const; (de ma classe Personne).
Ca ne suffirait pas de mettre le virtual uniquement dans Affiche() de la classe Employe ??
Marsh Posté le 24-01-2006 à 21:39:25
ReplyMarsh Posté le 25-01-2006 à 08:45:58
fab++, comment fait on pour récupérer le nom, prenom et age de la personne dans la classe Employe ?
cf ton message http://forum.hardware.fr/hardwaref [...] m#t1291356
Marsh Posté le 25-01-2006 à 09:29:03
bah tu fais des getter
Code :
|
Marsh Posté le 25-01-2006 à 09:39:00
chrisbk a écrit : nan justement, fo le specifier dans la classe pere |
mais alors on peut enlever le "virtual" de
Code :
|
de la classe Employe!
non?
Marsh Posté le 25-01-2006 à 09:42:31
oui, tu peux. Mais en pratique ca fait pas de mal non plus et ca laisse courir l'info que Affiche est virtuelle
Marsh Posté le 25-01-2006 à 10:32:34
qqn a une explication pour le "&" ?? je trouve pas
Marsh Posté le 25-01-2006 à 10:34:36
?
ca signifie soit que tu prends l'adresse d'une variable (si dans une expression), soit que ton type est une reference vers qqchose (en declaration de variable / parametre)
cf cours C++
Marsh Posté le 24-01-2006 à 18:51:06
J'ai commencé C++ cet aprèm (enfin plus ou moins on dira...vu que ca fait 4mois que j'ai des cours là-dessus, mais que j'ai rien foutu ) et j'aimerais bien prendre les bon réflexes dès aujourd'hui , alors si vous pouviez me dire ce qui joue pas dans mes classe, ca serait cool .
Développé sous C++ Builder 6:
En plus des erreurs de style, j'ai un bug... si je fais ca:
-> à l'affichage le p1 m'affiche des champs vide pour les variables de classe!!! pige vraiment pas! -> il devrait m'afficher "unknown unknown" et 0 pour l'age...
Merci pour votre aide!!
++
Message édité par le_duc le 24-01-2006 à 18:52:25