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 :

sizeof(classe abstraite) = 4 = petits soucis :(


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 98
    Par défaut sizeof(classe abstraite) = 4 = petits soucis :(
    Salut à tous ! je suis en train de travailler sur un projet de traitement d'image.
    Et j'ai donc créé une classe abstraite couleur que je spécialise dans les différents formats : RVBA32, RVB etc... et pour l'affichage j'aimerais pouvoir éviter de dupliquer mes données donc considérer par exemple mon tableau :

    Couleur_RVB32* couleurs; comme un tableau de unsigned char or cela ne fonctionne pas puisque j'ai 4 octets qui s'intercalent à cause de mon héritage de la classe Couleur....

    Voila j'espère que vous pourrez m'indiquer un moyen de remédier à mon problème.

    En vous remerciant d'avance ++
    Seb

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    577
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 577
    Par défaut
    Couleur_RVB32* couleurs; comme un tableau de unsigned char or cela ne fonctionne pas puisque j'ai 4 octets qui s'intercalent à cause de mon héritage de la classe Couleur....

    Je comprends pas bien, mais ca sera pas plutot que tu fais un :

    Couleur_RVB32* couleurs;
    sizeof(couleurs) ... = 4 ?
    ben sizeof(de n'importe quel pointeur) c'est toujours 4 octets !

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 98
    Par défaut
    Nono c'est bien ça le problème !!!

    C'est sizeof( Couleur ) = 4 qui me pose probleme et non pas sizeof( couleur ) qui d'ailleurs ne me plait pas trop du point de vu conceptuel si tu n'y voit pas d'inconvénient

    D'autres idées ? dois-je être plus clair peut-être quand à ma question ?

    ++
    Seb

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    577
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 577
    Par défaut
    Salut,

    D'autres idées ? dois-je être plus clair peut-être quand à ma question ?
    Oui.

    En tout cas moi j'ai pas compris ce que tu cherches à faire.

    donc considérer par exemple mon tableau :
    Couleur_RVB32* couleurs; comme un tableau de unsigned char or cela ne fonctionne pas puisque j'ai 4 octets qui s'intercalent à cause de mon héritage de la classe Couleur....
    Grace au sizeof tu veux récupérer ton nombre d'éléments ? et ce qui te perturbe c'est le + 4 octets ?

    @+

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 98
    Par défaut
    Non je cherche surtout pas à connaitre le nombre d'éléments !!! ça je le connais dieu merci !

    Je vais essayer de faire un petit schéma :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    class Couleur {
        public :
            Couleur() {}
            virtual ~Couleur() {}
     
            virtual void  setRouge(uint8 r) = 0;
            virtual uint8 getRouge() const = 0;
            etc ... pour toutes les composantes
    };
    ensuite je veux pouvoir spécialiser par exemple en RVBA32 ce qui donnerais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    class CouleurRVBA32 : public Couleur {
        private :
            uint32;
     
        public :
            CouleurRVBA32();
            ~CouleurRVBA32();
     
            void setRouge( uint8 r );
            uint8 getRouge();
            etc .....
    };
    Voila et maintenant si je fais sizeof( CouleurRVBA32 ) = 16 ce qui n'es pas normal .... car si je retire l'héritage j'ai une valeur correcte c'est à dire :
    sizeof( CouleurRVB32 ) = 8

    voila merci d'avance ! ++
    Seb

  6. #6
    Expert confirmé
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 296
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 296
    Par défaut
    virtual => tu paies une vtable.
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

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

Discussions similaires

  1. [QtCore] Petit souci avec un slot d'une classe différente
    Par Jiyuu dans le forum PyQt
    Réponses: 1
    Dernier message: 18/01/2011, 21h21
  2. Class C++ (petit soucis)
    Par lui88 dans le forum Débuter
    Réponses: 5
    Dernier message: 07/06/2009, 17h56
  3. Petit soucis avec Thread::Queue et une classe
    Par vodevil dans le forum Web
    Réponses: 16
    Dernier message: 09/06/2006, 21h41
  4. Petit souci JSP et class de connexion a BdD
    Par LeXo dans le forum Servlets/JSP
    Réponses: 13
    Dernier message: 07/06/2006, 00h57
  5. class template : quelques petits soucis
    Par ToxiZz dans le forum Langage
    Réponses: 1
    Dernier message: 09/02/2006, 23h08

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