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 :

Class : Héritage, Définir une var public->private


Sujet :

C++

  1. #1
    Membre éprouvé
    Avatar de Zenol
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2004
    Messages
    812
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2004
    Messages : 812
    Points : 1 054
    Points
    1 054
    Par défaut Class : Héritage, Définir une var public->private
    Boujour,

    J'ai une première classe (Sprit) qui contien une variable(SDL_Rect Picture_Size en public.
    Une autre classe (Sprit_Animer) hérite de cette classe, et je voudrias que la variable de la première classe soit inacéssible(Picture_Size doit devenir private), tout en permètent d'utiliser toute les fonctions et autres variables public de la première classe...

    Vous savez comment faire?

  2. #2
    Membre averti Avatar de Bob.Killer
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    336
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 336
    Points : 332
    Points
    332
    Par défaut


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    class Sprit {
    private :
    SDL_Rect Picture_Size;
     
    public :
    // tes autres fonction ...
    };
     
    class Sprit_Animer : public Sprit {
    // ...
    };
    ça marche pas ça ?

  3. #3
    Membre éprouvé
    Avatar de Zenol
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2004
    Messages
    812
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2004
    Messages : 812
    Points : 1 054
    Points
    1 054
    Par défaut
    Ma variable dans ma première classe doit impérativement être en public!

    Par contre, dans la deuxième classe, elle doit être inacéssible depuis l'extérieure.

    Ton code la rend inaxesible de partout, dans la première et la deuxième :'(

  4. #4
    Membre averti Avatar de Bob.Killer
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    336
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 336
    Points : 332
    Points
    332
    Par défaut
    bas là dans la première classe tu y auras accés, mais dans les autres non...

    Si tu la mets en 'public' dans ta classe tu auras accès à la variable de partout, c'est le but de 'public'

    sinon en 'protected' ça sera comme en 'private' sauf que les classes aui hérite auront aussi accès.

    et en 'private' juste la classe aura accès

    Il n'existe aucun autre mots clé à ma connaissance

    en fait je crois que je capte pas très bien ce que tu veux avoir

  5. #5
    Membre éprouvé
    Avatar de Zenol
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2004
    Messages
    812
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2004
    Messages : 812
    Points : 1 054
    Points
    1 054
    Par défaut
    E,nfaite, je veut que on puisse modifier Picture_Size dans les objets "sprit" car cette structure contien la configuration de la partie de l'image a afficher.

    Mais dnas ma classe dériver Sprit_Animer, cette variable est perpètuèlement changer pour justement animer un sprit a partir d'un fichier qui contien les diférentes parties a afficher, donc la variable Picture_Size doit rester ici inacessible, et ne seras modifier que par la fonction de la classe.

  6. #6
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Dans ce cas il faut revoir ta conception. L'héritage publique signifie "est un" ou encore "peut être utilisé comme un", or de toute évidence ton sprite animé ne peut pas être manipulé comme un sprite.

    Une idée comme ça à froid : pourquoi ne pas faire une classe de base Sprite_Base, qui définira par exemple une fonction virtuelle pure Draw et mettra Picture_Size en accès protégé, et deux classes dérivées : Sprite_Static et Sprite_Animated, le premier donnant un accès publique à Picture_Size et le second non ?

  7. #7
    Membre éprouvé
    Avatar de Zenol
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2004
    Messages
    812
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2004
    Messages : 812
    Points : 1 054
    Points
    1 054
    Par défaut
    Oui, je croi être obliger de faire dériver la classe Sprit... Ou alors je re-initilise Picture_Size ...
    Sa me parait plus simple de procèder ainsi, car Sprit_Animer est la réplique de Sprit a la diférence d'une variable suplémentaire et d'une modification d'une fonction.

    Le problème sera que L'or de la modification de la variable, aucune éreure sera renvoiller l'or de la compilation...

    C'est tout de même un peut domage...


    Edit :
    Ou sinon, si je fait une fonction qui retourne la référence de l'objet et que je le met en private, sa devrais aller

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 9
    Points : 11
    Points
    11
    Par défaut
    Je suis désolé mais il faut vraiment que tu fasses attention à l'orthographe.
    C'est vraiment difficile de te lire.

    Une perle:
    Citation Envoyé par JC_Master
    l'or de la compilation...

  9. #9
    Membre éprouvé
    Avatar de Zenol
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2004
    Messages
    812
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2004
    Messages : 812
    Points : 1 054
    Points
    1 054
    Par défaut
    Opse, en effet, ce n'est pas le sens rechercher... ^^

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 18/12/2008, 14h15
  2. Héritage d'une classe en css
    Par picomz dans le forum Mise en page CSS
    Réponses: 7
    Dernier message: 27/12/2005, 16h10
  3. Définir une class comme élement graphique
    Par Janitrix dans le forum Interfaces Graphiques en Java
    Réponses: 3
    Dernier message: 14/11/2005, 22h41
  4. Héritage d'une classe thread
    Par SamCB500 dans le forum MFC
    Réponses: 4
    Dernier message: 07/07/2005, 15h35
  5. Réponses: 8
    Dernier message: 20/12/2004, 15h14

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