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 :

Objet de base d'une classe derivée


Sujet :

C#

  1. #1
    Membre éprouvé Avatar de Seth77
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2005
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 448
    Par défaut Objet de base d'une classe derivée
    Salut

    Est ce possible d'initialiser, dans le constructeur, dans la classe derivee l'instance existante de la classe de base ?

    thx @+

  2. #2
    Membre éprouvé Avatar de Mourad
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 152
    Par défaut
    est-ce que tu peux expliquer un peu plus?
    sinon d'après ce que j'ai compris y'a aucune raison pour que tu ne puisses pas faire ça

  3. #3
    Membre éprouvé Avatar de Seth77
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2005
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 448
    Par défaut
    Quand on derive une classe on a toujours la classe mais "vide" et j'aimerais savoir comment initialiser cette classe "vide" quand j'instancie la classe derivee ...

    ps : Super l'avatar !

  4. #4
    Membre éprouvé Avatar de Mourad
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 152
    Par défaut
    je vois
    dans ta classe dérivée quand tu définis ton constructeur tu fais en sorte qu'il hérite par exemple de la classe de base

    genre : ContructeurClasseDérivée() : base()

    ps : oui c'est tout nouveau le MNP il faut être trop fort pour l'avoir

  5. #5
    Membre éprouvé Avatar de Seth77
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2005
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 448
    Par défaut
    Slu

    Est il possible de forcer le contructeur a utiliser lors de l'instanciation de la classe dans une classe derive ...

    Par exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Class a
    {
     public A () {}
     public A (int i) {}
    }
     
    class B: a
    {
     public B() : A(i) {}
    }
    est donc ne pas permettre dans le contructeur de B d'utiliser le constructeur A()...


  6. #6
    Membre Expert Avatar de Mose
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 143
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 143
    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 1
    {
     public A () {}
     public A (int i) {}
    }
     
    class B: A
    {
     public B() : base(i) {}
    }
    Tu aurais pu le trouver très facilement si tu consultais la doc.
    Mais c'est bien plus reposant pour les neurones de venir quémander sur un forum...

  7. #7
    Membre éprouvé Avatar de Seth77
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2005
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 448
    Par défaut


    Oui c est vrai, c est plus facile de quemender sur un forum ... mais en fait c 'est pas vraiment la reponse que je recherche ...

    En fait , c'est empecher le "developpeur" d'utiliser un constructeur dans la classe derivee ... et autoriser un autre constructeur lors de l'instanciation de l'objet ...

  8. #8
    Membre Expert Avatar de Mose
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 143
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 143
    Par défaut
    Ca c'est une vraie question

    Non, c'est pas possible en l'état.
    Une solution consiste à mettre le constructeur en private, comme ça pas d'héritage possible.
    Et pour instancier tu fais une méthode static CreateNew() qui va appeler le constructeur.

    Une autre solution, c'est l'utilisation du mot clef sealed.

    Note : je déconseille d'interdire l'héritage. Généralement c'est utilisé pour masque le fait que la classe est mal implémentée.
    Pour un puriste de l'objet (comme moi) : c'est anti-objet comme approche.
    Après, c'est ton code

Discussions similaires

  1. Réponses: 11
    Dernier message: 26/09/2010, 11h02
  2. Réponses: 7
    Dernier message: 08/12/2009, 16h29
  3. [Objet] Nommage dynamique d'une classe
    Par raoulchatigre dans le forum C++
    Réponses: 7
    Dernier message: 25/01/2008, 16h07
  4. Recuperer un objet panel ds une classe derivé d'une JFrame
    Par benthebest dans le forum Agents de placement/Fenêtres
    Réponses: 2
    Dernier message: 26/12/2005, 01h57
  5. [MFC]creer une classe derivé de CWinThread
    Par psyjess dans le forum MFC
    Réponses: 2
    Dernier message: 18/03/2005, 14h23

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