Classe dans une classe - C++ - Programmation
Marsh Posté le 18-02-2008 à 23:07:54
Oui je vois merci
Par contre comment accéder à sonAbscisse et sonOrdonnee de sonCentre ?
Quelle est la syntaxe stp ?
Merci en tout cas
Marsh Posté le 19-02-2008 à 07:58:27
bah :
Code :
|
Tu manques de bases là. Un petit tour par la case bouquin s'impose
Marsh Posté le 19-02-2008 à 09:17:16
Je commence tout juste le C++, j'ai simplement des bases en C.
Merci de ton aide ^^
Marsh Posté le 19-02-2008 à 09:19:13
tout juste ... et on te fait déjà faire de l'objet alors que visiblement les bases sont pas là :|
Quelle école ?
Marsh Posté le 19-02-2008 à 09:27:59
IUT A de Lyon1.
(Petite) autre question, j'arrive à faire des sonCentre.getsonAbscisse() dans mon .cpp, là où sont écrites mes méthodes, mais pas dans ma fonction main.
Quelle est l'astuce pour faire un sonCentre.setsonAbscisse() et sonCentre.setsonOrdonnee() dans main, écrire encore une autre méthode du type :
Code :
|
?
Marsh Posté le 19-02-2008 à 09:50:32
Y a soit un manque sérieux de cours de base soit un manque de travail.
Outre une convention de nommage à coucher dehors, ça manque de forme canonique de
coplien et d'accesseur/mutateur bien construit. Allons y progressivement.
La classe point :
Code :
|
le quatuor sacré (constructeur par défaut,destructeur, constructeur de copie, opérateur d'affectation) est la BASE d'une classe propre.
le constructeur par défaut utilise une liste d'initialisation pour construire l'objet.
Les accesseurs/mutateurs utilisent des références et le marqueur const pour distinguer les accès en lecture/écriture. Exemple d'utilisation
Code :
|
Ensuite, cercle.
Réfléchissons deux secondes, quels sont les constituant du cercle : son centre et son rayon.
Ça nous donne la signature de son constructeur. On va dire que le cercle "par défaut" est placé en (0,0)
et à un rayon nul.
Code :
|
même structure et même principe. Ici on gagne a réutiliser point et sa FCC car on va pouvoir copier direct son contenu d'un centre
à l'autre. Exemple :
Code :
|
Pose des questions si qqchose n'est pas clair
Marsh Posté le 19-02-2008 à 18:44:15
Quelques questions, parceque bien que ma convention de nommage ne soit pas claire, chaque variable ou fonction veut dire quelque chose et je trouve qu'on s'y repère plus facilement.
Que signifient les ":" lors de l'écriture des accesseurs ?
Le destructeur ne fait aucune opération, c'est normal ?
Pourquoi toutes les méthodes sont passées en paramètres ?
Je suis un peu perdue dans ton code :s
Marsh Posté le 19-02-2008 à 20:04:21
darkgloom a écrit : |
Les miennes aussi Juste que mélanger anglais et français c'est vraiment laid.
darkgloom a écrit : |
Tu veut dire dans les constructeurs ???
Code :
|
Ça s'appelle une liste d'initialisation, ca permets d'initialiser tes membres avant d'attaquer
l'exécution du code contenu dans le constructeur. C'est la manière disons propre de faire les choses.
darkgloom a écrit : |
Que voudrais tu qu'il fasse ?
Les membres de cercle et point sont des types atomiques.
darkgloom a écrit : |
Je comprends pas la question
darkgloom a écrit : |
T'inquiètes ça finira par rentrer
Marsh Posté le 19-02-2008 à 20:20:49
Ça s'appelle une liste d'initialisation, ca permets d'initialiser tes membres avant d'attaquer
l'exécution du code contenu dans le constructeur. C'est la manière disons propre de faire les choses.
:: Ok, et concrètement que signifient les x(px) et y(px) ? (histoire de pouvoir reproduire ça quoi ^^)
Que voudrais tu qu'il fasse ?
Les membres de cercle et point sont des types atomiques.
:: Ok donc dans la majorité des cas le destructeur n'a pas de coprs ?
Je comprends pas la question
:: Je viens de me rendre compte que j'ai dit un peu n'importe quoi, fin en gros pourquoi mettre des & dans certaines méthodes ?
Merci de ta patience et de ton aide
Marsh Posté le 19-02-2008 à 20:24:23
darkgloom a écrit : |
En gros ça :
Code :
|
c'est pareil que :
Code :
|
darkgloom a écrit : |
Plus ou moins. Du moment ou tu n'as pas de ressources systèmes à libérer (mémoire allouée via new, socket, etc), oui.
Rencarde toi sur le mécanisme de RAII pour plus de détails
darkgloom a écrit : |
Je renvoie un référence. Ça permets d'éviter les copies inutiles dans le cas des const T&
et de permettre de modifier la valeur renvoyer dans le cas des T&. Pour les types atomiques, ça sers pas trop
mais c'est jamais perdu. Pour les méthodes qui renvoient des objets, c'est mieux. Le concept de référence est un concept
extrêmement important en C++.
Marsh Posté le 18-02-2008 à 22:38:08
Bonsoir,
Dans un cadre scolaire j'ai besoin de définir une classe UnCercle qui contient un objet de classe UnPoint.
Voilà mon .h qui définit cette classe UnCercle :
Je suis maintenant en train d'écrire une méthode afficheToi, qui permet d'afficher les caractéristiques du cercle (coordonnées du centre et rayon).
Mes questions sont les suivantes, ma classe est-elle correctement déclarée ( et comment accéder aux caractéristiques du point (sonAbscisse et sonOrdonnee) dans ma méthode afficheToi ?
Merci d'avance
Message édité par darkgloom le 18-02-2008 à 22:55:44