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 :

quelques questions sur le c++ et l'h�ritage


Sujet :

C++

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre �clair� Avatar de Rniamo
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    508
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 508
    Par d�faut quelques questions sur le c++ et l'h�ritage
    Bonjour,

    j'apprend le c++ et j'ai 3 questions :

    1) Concernant le langage m�me je n'est pas compris l'h�ritage je crois : j'ai lu qu'une instance B de la classe CB h�ritant de la classe CA ne pouvait pas recevoir une instance de classe CA mais que A de classe CA pouvait recevoir B...Je pensais que c'�tatit le contraire.

    2) L'int�r�t de d�clarer des variables private et non protected puisque protected est plus large (m�me si non indispensable).

    3) Ma deuxi�me question est loin de �a : j'ai pas mal cod� en C avec GTK+ et j'ai vu qu'il existait gtkmm pour le c++, je recherche de bons tutoriaux.

    L� o� mes deux questions (1 et 3) sont li�s, c'est qu'en C/GTK+ je d�clar� un Widget et je l'utilis� pour tous les widget (label, entry, window ...). Alors que d'apr�s ce que j'ai compris ce n'est pas logique d'un point de vue classe...

  2. #2
    R�dacteur

    Avatar de Davidbrcz
    Homme Profil pro
    Ing Supa�ro - Doctorant ONERA
    Inscrit en
    Juin 2006
    Messages
    2 307
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 33
    Localisation : Suisse

    Informations professionnelles :
    Activit� : Ing Supa�ro - Doctorant ONERA

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 307
    Par d�faut
    1) Pas claire comme ca
    Montre du code, ca sera plus simple pour t'expliquer.

    2) Une variable protected est accessible aux classes d�riv�es mais reste n�anmoins inaccessible depuis l'ext�rieur de la classe.

    3) Bien que Gtk++ soit un wrapper de GTK pour le C++, je ne peux que conseiller Qt � la place de celle ci.
    Mais si tu souhaite rester avec GTK, j'ai trouv� ceci :
    http://www.xgarreau.org/aide/devel/langtk/cpp_gtkmm.php
    "Never use brute force in fighting an exponential." (Andrei Alexandrescu)

    Mes articles dont Conseils divers sur le C++
    Une tr�s bonne doc sur le C++ (en) Why linux is better (fr)

  3. #3
    Membre �m�rite
    Avatar de mamelouk
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    867
    D�tails du profil
    Informations personnelles :
    Localisation : France, Rh�ne (Rh�ne Alpes)

    Informations forums :
    Inscription : Mai 2005
    Messages : 867
    Par d�faut
    Salut,

    je voudrais te donner un conseil d'ordre g�n�ral, pose une seul question par post, sinon tu recevra moins de r�ponses (moi au d�but j'avais vraiment pas envie de tout lire et encore moins de te r�pondre)

    1) il faut se repr�senter l'h�ritage avec des images concr�tes : un Animal (classe m�re) peut etre un Chat ou autre chose, tandis qu'un Chat ne peut pas etre d�fini par juste "Animal".. Un Chat c'est une instance sp�cialis�e d'Animal, et donc tu ne peut pas mettre une instance d'Animal dans une variable de Type, car il manquera des infos � cette variable pour etre compl�tement un chat.

    2) les variables private ne sont pas accessible aux classes filles, parfois c'est ce qu'on veut

    3) pareil que Davidbrcz. si tu code en C, utilise Gtk, si tu travaille en C++, plutot Qt. je ne me souviens plus de tout les probl�mes que j'avais eu avec gtkmm, mais j'en avais bav� pour l'installation sous windows par exemple.

  4. #4
    Membre �clair� Avatar de Rniamo
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    508
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 508
    Par d�faut
    3) ok, je voulais utilis� GTK-- car sous gnome qt est moche mais bon, ce n'est pas le plus important.

    2) ok, moi je voyais les choses � l'envers alors.

    1) Un Animal ne peut pas �tre un Chat �a me semble logique mais c'est ce que j'ai lu. J'ai trouv� que seul les attributs en commun sont h�rit�s ainsi que l'adresse ce qui me rassure un peu.

  5. #5
    R�dacteur

    Avatar de Davidbrcz
    Homme Profil pro
    Ing Supa�ro - Doctorant ONERA
    Inscrit en
    Juin 2006
    Messages
    2 307
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 33
    Localisation : Suisse

    Informations professionnelles :
    Activit� : Ing Supa�ro - Doctorant ONERA

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 307
    Par d�faut
    FULL HS : Je sais pas si c'est moi ou quoi mais je ne n'ai toujours rien compris � tes propos sur l'h�ritage et pourtant je l'ai bien relu 5 ou 6 fois ta phrase. Mais je n'y comprend vraiment rien .
    "Never use brute force in fighting an exponential." (Andrei Alexandrescu)

    Mes articles dont Conseils divers sur le C++
    Une tr�s bonne doc sur le C++ (en) Why linux is better (fr)

  6. #6
    Membre �clair� Avatar de Rniamo
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    508
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 508
    Par d�faut
    je vais tenter un bout de code (plus pour l'id�e qu'autre chose) :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    class Pere {
    ....
    }
     
    class Fils {
                      Fils(int n);
    }
    int main(void)
    {
                      Pere p;
                      F f(1);
                      p=f;
                      return 0;
    }
    Ce code est correct m�me si f a plus d'arguments que p, p=f revient � affecter l'adresse de f � p puis d'�galiser les attributs communs...d'apr�s ce que j'ai compris, j'aimerais qu'on me le confirme.

  7. #7
    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
    Tu as ici un ph�nom�ne de slicing (perte d'information suite � convertion).

    G�n�ralement, on ne manipule jamais par valeur les objets issues de hi�rarchies o� l'h�ritage sert � supporter une substituabilit�.
    Une bonne pratique consiste � interdire affectations et copies dans les objets polymorphes, vu que souvent cela n'a aucun sens.

    En conclusion, utilises pointeurs et r�f�rences.
    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. Quelques questions sur les threads
    Par benj63 dans le forum C++Builder
    R�ponses: 28
    Dernier message: 21/11/2005, 13h27
  2. R�ponses: 19
    Dernier message: 21/10/2005, 19h24
  3. Quelques questions sur la m�moire
    Par Gruik dans le forum C
    R�ponses: 6
    Dernier message: 17/11/2004, 14h38
  4. Quelques question sur Win 32 Appli
    Par lvdnono dans le forum Windows
    R�ponses: 5
    Dernier message: 15/06/2004, 12h37
  5. Quelques questions sur le TWebBrowser...
    Par CorO dans le forum Web & r�seau
    R�ponses: 3
    Dernier message: 17/01/2003, 21h23

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