IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

[POO] conception des classes


Sujet :

C++

  1. #81
    Membre chevronné
    Avatar de poukill
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 155
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 155
    Points : 2 107
    Points
    2 107
    Par défaut
    Citation Envoyé par Miles
    Ben oui, si camera est de type Camera et pas Camera*.
    D'accord...
    Donc, par déduction. Si je travaille depuis la classe Choc. Comme j'ai un CFP*, je ne peux pas faire de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cfp->getNomComposant();
    C'est bien ça?

    Une méthode pour palier à ce problème?

  2. #82
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    Ben si, tu as un CFP*, donc tu y accèdes avec ->...
    Dans ton exemple, tu avais une Camera, donc c'est directement '.', c'est du C++ classique...

  3. #83
    Membre chevronné
    Avatar de poukill
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 155
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 155
    Points : 2 107
    Points
    2 107
    Par défaut
    Ok ok, c'est que la POO a tendance à embrouiller mes connaissances en C++!
    Je vais essayer de pondre une version, et demain je montre mes soucis (j'espère ne pas en recontrer mais bon...)

    Je devrais rapidement passer du côté forum C++ je pense...

    Merci Miles

  4. #84
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    De rien
    Effectivement, maintenant, ça peut être plus du C++ que de la conception
    Le mieux est sans doute un nouveau sujet dans le forum C++, pour laisser une trace ici pour les autres

  5. #85
    Membre chevronné
    Avatar de poukill
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 155
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 155
    Points : 2 107
    Points
    2 107
    Par défaut
    OK ! Juste une dernière question Miles:
    Quand je crée un Choc (c'est inévitablement le point de départ!), j'utilise le constructeur qui prend entre autre comme paramètres le numero_choc... Cette donnée étant très importante pour les autres classes, j'ai deux solutions:
    1) Soit j'écris tous les constructeurs des autres classes de façon à ce qu'ils prennent comme paramètre numero_choc, de même pour les méthodes en ayant besoin. Je me débrouille alors pour boucler tout ce qui a besoin de numero_choc d'un coup dans le constructeur.
    Inconvénient : Une fois que la classe est instancié:impossible de retrouver le numero_choc (à moins que tu aies une méthode !!)

    2) Chaque classe a un attribut privé numero_choc que je rempli lors de l'appel du constructeur.
    Inconvénient : Ca fait le même attribut dans toute les classes, qui est identique partout... Je sais pas si c'est génial!!!

    J'aimerai vraiment avoir ton retour là dessus !

  6. #86
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    Si tu en as besoin partout, de ce numéro, autant le donner partout, c'est pas un problème.

  7. #87
    Membre chevronné
    Avatar de poukill
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 155
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 155
    Points : 2 107
    Points
    2 107
    Par défaut
    Même si ça fait pas vraiment parti de la Classe (i.e : rien à voir avec l'objet )?

  8. #88
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    C'est clair, c'est limite, mais bon, ça serait se casser la tête pour pas grand chose, AMHA.

  9. #89
    Membre chevronné
    Avatar de poukill
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 155
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 155
    Points : 2 107
    Points
    2 107
    Par défaut
    Oui, je pense aussi...
    J'ai encore une p'tite interrogation: j'ai des fonctions (typiquement affichage par transparence de deux images) que je ne sais pas vraiment encore où ranger... Soit je crée une autre classe, soit je la laisse en fonction libre!

    Je ne perçois pas bien les limites de la POO, j'ai l'impression que si je fais pas tout rentrer dans des classes, comme ils le font si bien à l'école, c'est pas de la POO propre ?

    classe ou libre ?

  10. #90
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    Une fonction libre peut appartenir à une classe, ça dépend si elle est fournie avec ou pas
    L'avantage des fonctions libres, c'est que si elles sont bien faites, elles peuvent épargner la réécriture d'elles-mêmes : une classe polymorphique avec une fonction libre appelant des fonctions virtuelles.
    Tout faire rentrer dans une classe, ça donne des trucs horribles comme la classe std::string qui est un grois bloc infâme.

  11. #91
    Membre chevronné
    Avatar de poukill
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 155
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 155
    Points : 2 107
    Points
    2 107
    Par défaut
    Citation Envoyé par Miles
    L'avantage des fonctions libres, c'est que si elles sont bien faites, elles peuvent épargner la réécriture d'elles-mêmes : une classe polymorphique avec une fonction libre appelant des fonctions virtuelles.
    Dans mon cas, je parle surtout de fonction de mon cru (donc pas très bien faite )!
    CE qui me chagrine, c'est qu'une fonction AffichageMix() a peu de point commun avec une classe CFP (un peu quand même, mais bon)!

    Comme tu le dis, j'ai peur qu'à la fin, tout soit mis n'importe comment dans la classe, ça va devenir le b...

    D'un autre côté, une fonction libre, pour moi, c'est une fonction mis dans un fichier outils.cpp à côté. Bof bof

  12. #92
    Membre chevronné
    Avatar de poukill
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 155
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 155
    Points : 2 107
    Points
    2 107
    Par défaut
    J'ai choisi la solution de recopier le numero_choc là où j'en ai besoin. Ca me parait pas mal!

    Une autre (dernière?) question:
    Y a t-il un moyen pour que toutes les variables numero_choc soient identiques?
    Ou bien faudra -til prévoir une mise à jour vers les autres classes lorsque je ferai:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    choc.setNumeroChoc(36547)
    Le problème peut-être: si j'ai envie de rajouter d'autres classes!

    Merci!

  13. #93
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    A priori, la seule manière qu'elle soient identiques, c'est que ce soit la même variable, et donc que ce soir une référence dans les classes filles, mais bof.

  14. #94
    Membre chevronné
    Avatar de poukill
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 155
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 155
    Points : 2 107
    Points
    2 107
    Par défaut
    Ok !
    Je pense que le mieux est que dans la méthode qui modifie numero_choc, je fasse "descendre" l'info aux autres classes, qui elles n'auront pas le pouvoir de modifier directement cet attribut ?

  15. #95
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    Oui, sauf que tu ne pourras jamais leur interdire d'écrire dans cette variable

  16. #96
    Membre chevronné
    Avatar de poukill
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 155
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 155
    Points : 2 107
    Points
    2 107
    Par défaut
    C'est juste...
    Pb connu ou de conception ?

    Je pense pas que ce soit si grave... Au pire, je peux le déclarer const dans les autres classes que choc ?

  17. #97
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    C'est un problème qui est dû aux spécificités du langage : une variable d'une instance de classe peut être modifiée par cette instance, c'est normal.
    Avec un const, tu ne pourras pas changer la valeur de la variable, depuis ton instance comme depuis l'extérieur.Je n'ai pas de solution simple à ce "problème".

  18. #98
    Membre chevronné
    Avatar de poukill
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 155
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 155
    Points : 2 107
    Points
    2 107
    Par défaut
    OK c'est bien ce que je craignais.
    J'ai une idée:
    Si CFP est une classe abstraite, et ne contient pas de méthode pouvant modifier numero_choc (private). Les deux classes filles (les seules pouvant être instanciées) n'auront donc pas accès à cet attribut, non?

    Ainsi, seul choc pourra modifier numero_choc (car possède un pointeur CFP *)?

    Dis moi si je me plante lamentablement dans mon raisonnement!

  19. #99
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    Ca pourrait marcher, sauf que la variable dans CFP est private et donc non accessible de l'extérieur...

  20. #100
    Membre chevronné
    Avatar de poukill
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 155
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 155
    Points : 2 107
    Points
    2 107
    Par défaut


    +1

    Donc il me faut une méthode pour la modifier.
    Donc mon raisonnement est à l'eau complet

    Disons, c'est bien essayé!

+ Répondre à la discussion
Cette discussion est résolue.
Page 5 sur 12 PremièrePremière 123456789 ... DernièreDernière

Discussions similaires

  1. Réponses: 7
    Dernier message: 01/01/2010, 08h31
  2. [POO] d’encapsulation des classe
    Par amazircool dans le forum Langage
    Réponses: 6
    Dernier message: 17/09/2007, 18h33
  3. [POO] Héritage des classes
    Par mic79 dans le forum Langage
    Réponses: 27
    Dernier message: 09/03/2007, 20h02
  4. [POO] Organisation des classes PHP
    Par AsQuel dans le forum Langage
    Réponses: 6
    Dernier message: 16/02/2007, 09h09
  5. [POO] faire des classes en php
    Par gromit83 dans le forum Langage
    Réponses: 2
    Dernier message: 13/04/2006, 16h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo