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 :

R�organiser fonctions traitement variable statique dans une classe


Sujet :

C++

  1. #1
    Membre confirm�
    Profil pro
    Enseignant
    Inscrit en
    Septembre 2011
    Messages
    43
    D�tails du profil
    Informations personnelles :
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activit� : Enseignant

    Informations forums :
    Inscription : Septembre 2011
    Messages : 43
    Par d�faut R�organiser fonctions traitement variable statique dans une classe
    Bonjour � tous,

    Je me retrouve avec un projet o� une classe A g�re un tas d'objet de classe B utilisant une variable statique V.
    La variable statique est d�clar�e dans B. Les fonctions de traitement associ�es � V sont dans B.
    La classe A utilise les fonction de traitement associ�es � V.

    Tout fonctionne mais le code est maintenant moche � lire.

    Mon souci est que je souhaiterai d�placer les fonctions de traitement associ�es � V qui sont dans B ailleurs que dans B.
    J'ai mon id�e mais je souhaiterai avoir la votre.

    Pour �tre plus clair, je sch�matise :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    class B {
    public :
     B(params);
     ~B();
     void fonctionDeTraitement1(params);
     void fonctionDeTraitement2(params);
     plein d'autres choses 
     ... 
     static creerV();
     static modifieV();
     static resetV();
     static updateV();
    private:
     plein de variables distinctes
     ...
     static var V;
    }
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    class A {
    public:
     A(params);
     ~A();
     void fonctionDeTraitement1(params);
     void fonctionDeTraitement2(params);
     plein d'autres choses 
      ...
      accesCreerV();
      accesModifieV();
      accesResetV();
      accesUpdateV(); 
      ...
    private:
      plein de variables
      ...
      B[150] mesB;
    }
    Les fonctions accesCreerV() sont des simples liens de genre B::creerV();

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    void A::accesCreerV() {
     B::creerV();
    }
    A n'a pas d'acc�s direct sur V

    Ce que je souhaiterai c'est d'avoir

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    class B {
    public :
     ...
    private:
     ...
     static var V;
    }

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    class C {
    public:
     static creerV();
     static modifieV();
     static resetV();
     static updateV();
    private:
     ...
    }

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    class A {
    public:
      ...
      accesCreerV();
      accesModifieV();
      accesResetV();
      accesUpdateV(); 
      ...
    private:
      B[150] mesB;
    }

    Comment relier tout le monde entre eux ?


    En vous remerciant par avance !

  2. #2
    Expert confirm�
    Homme Profil pro
    Ing�nieur d�veloppement mat�riel �lectronique
    Inscrit en
    D�cembre 2015
    Messages
    1 599
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 62
    Localisation : France, Bouches du Rh�ne (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : Ing�nieur d�veloppement mat�riel �lectronique
    Secteur : High Tech - �lectronique et micro-�lectronique

    Informations forums :
    Inscription : D�cembre 2015
    Messages : 1 599
    Par d�faut
    Bonjour,

    Quelque chose est perturbant dans le code que tu donnes.
    B contient un champ statique donc unique. Ta classe B ne semble m�me qu'avoir des choses statiques donc n'a pas d�existence propre.
    D'o� B[150] mesB; n'est jamais que 150 fois exactement la m�me chose!
    Il y a donc une seule var V et pourtant des tas de fonctions partout pour la modifier. Je d�croche.

    Peut-�tre qu'avec des noms plus explicite que A, B, C et var, on pourrait donner une r�ponse plus globale � la structure de ton code.

    Maintenant si ton seul probl�me est de n'�crire que ce qui est n�cessaire, il suffit de faire :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    class A {
    public:
      ...
      accesCreerV()const  { B::accesCreerV(); }
      accesModifieV()const { B::accesModifieV(); }
      accesResetV()const  { B::accesResetV(); }
      accesUpdateV()const { B::accesUpdateV(); } 
      ...
    private:
      B[150] mesB;
    }

  3. #3
    Membre confirm�
    Profil pro
    Enseignant
    Inscrit en
    Septembre 2011
    Messages
    43
    D�tails du profil
    Informations personnelles :
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activit� : Enseignant

    Informations forums :
    Inscription : Septembre 2011
    Messages : 43
    Par d�faut
    D�sol� pour la r�ponse tardive.
    Le projet est (trop) gros pour �tre expos� simplement, mais je m'excuse vraiment de ne pas avoir transcrit ce qu'il vous fallait pour mieux vous aiguiller.

    La classe A g�re bien 150 objets B distincts ...

    Aussi j'ai modifi� mon post de d�part pour rendre le probl�me plus clair.

  4. #4
    R�dacteur/Mod�rateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 153
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 38
    Localisation : Canada

    Informations professionnelles :
    Activit� : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 153
    Billets dans le blog
    4
    Par d�faut
    Si tu veux juste d�placer des trucs static ailleurs je vois pas bien o� le probl�me se trouve ?
    Pensez � consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation r�seau ?
    Aucune aide via MP ne sera dispens�e. Merci d'utiliser les forums pr�vus � cet effet.

  5. #5
    Membre confirm�
    Profil pro
    Enseignant
    Inscrit en
    Septembre 2011
    Messages
    43
    D�tails du profil
    Informations personnelles :
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activit� : Enseignant

    Informations forums :
    Inscription : Septembre 2011
    Messages : 43
    Par d�faut
    Cela doit �tre psychologique !

    Juste que je trouvais emb�tant d'avoir des fonctions statiques qui agissaient sur la variable V d�finies dans la classe B alors qu'elles auraient pu �tre d�finies ailleurs afin de ne pas "polluer" la classe B

    Mais si cela ne vous choque pas vous qui �tes des pros, alors je ne m'en fais plus moi non plus !

  6. #6
    R�dacteur/Mod�rateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 153
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 38
    Localisation : Canada

    Informations professionnelles :
    Activit� : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 153
    Billets dans le blog
    4
    Par d�faut
    Si c'est tr�s choquant et mauvais d'avoir des trucs inutiles qui polluent B.
    Enfin, � priori, parce qu'on sait pas trop ce que tu manipules mais quand j'entends parler de 150 variables B... �a fait pas envie.
    Mais �a n'a rien de difficile qui requiert quelconque aide de les d�placer... faut juste user de ses touches ctrl-c et ctrl-v.
    Pensez � consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation r�seau ?
    Aucune aide via MP ne sera dispens�e. Merci d'utiliser les forums pr�vus � cet effet.

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. Appel Variable statique dans une autre classe ?
    Par noula_27 dans le forum Langage
    R�ponses: 6
    Dernier message: 15/01/2013, 23h06
  2. [1.x] d�clarer variables statiques dans une classe controller
    Par flora806 dans le forum Symfony
    R�ponses: 8
    Dernier message: 15/10/2012, 17h26
  3. R�ponses: 5
    Dernier message: 22/06/2009, 11h02
  4. R�ponses: 14
    Dernier message: 05/09/2006, 01h17
  5. [Tableaux] Probleme variable statique dans une classe
    Par Joe Le Mort dans le forum Langage
    R�ponses: 7
    Dernier message: 31/08/2006, 11h35

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