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

Delphi Discussion :

objet, redefinir un constructeur


Sujet :

Delphi

Vue hybride

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

    Informations forums :
    Inscription : Juin 2006
    Messages : 108
    Par défaut objet, redefinir un constructeur
    Salut tt le monde, voila j'ai une super classe "Course" et 2 sous classe "Slalom" et "descente"

    dans les 3 classe j'ai unNum, unLieu, unVainqueur

    Dans la sous classe "slalom" je veut rajouter nbPortes

    et dans la sous classe "descente" je veut rajouter distance

    :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

    voici l'interface du costructeur de la superclasse
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    constructor nouvelleCourse(unNumCourse : integer; unTypeCourse : string; unVainqueur : string; unNomStation : string; uneDateCourse : string); virtual;
    celui du slalom

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    constructor nouvelleCourse(unNumCourse : integer; unTypeCourse : string; unVainqueur : string; unNomStation : string; uneDateCourse : string; unNbPortes : integer); override;
    et celui de la descente

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    constructor nouvelleCourse(unNumCourse : integer; unTypeCourse : string; unVainqueur : string; unNomStation : string; uneDateCourse : string; uneDistance : integer); override;
    et dans l'implementation de la sous classe slalom j'ai fais comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    begin
     inherited nouvelleCourse(unNumCourse, unTypeCourse, unVainqueur, unNomStation, uneDateCourse);
     nbPortes := unNbPortes;
     end;
    Mais malheureusement cela ne marche pas delphi me dit que la méthode "nouvelleCourse" n'est pas trouvé ds la classe de base.

    Je n'arrive plus à avancer pourriez vous m'aider svp!

  2. #2
    Membre éprouvé
    Inscrit en
    Janvier 2003
    Messages
    110
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Janvier 2003
    Messages : 110
    Par défaut
    C'est un constructeur, ne met pas de virtual et d'override, ne met rien. S'il te demande qques choses c'est un overload que tu mets dans ce cas.

    virtual et override -> permet une surcharge d'une fonction ou procedure
    overload -> permet de redéfinir une fonction ou procedure du même nom mais pas avec les mêmes arguments.

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

    Informations forums :
    Inscription : Juin 2006
    Messages : 108
    Par défaut
    cela ne marche pas mieu

  4. #4
    Membre émérite Avatar de PadawanDuDelphi
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Août 2006
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2006
    Messages : 678
    Par défaut
    Bonjour,

    Il semblerait que taon constucteur ne soit pas déclaré.
    Est-tu sur d'avoir declare ton constructor dans Public? Et d'avoir ectrit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TCourse.NouvelleCourse...
    ?

    @+.

  5. #5
    Expert confirmé Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Par défaut
    Bonjour,

    Apparament, ce que tu appelles superclasse est en fait la classe de base. Slalom et Descente doivent en hériter :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    type 
      Tcourse = class(Tobject) 
       ...
       Slalom = class(Tcourse) 
       ...
       Descente = class(Tcourse) ...
       ...

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    108
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 108
    Par défaut
    merci Graffito et les autres j'avais oublié "Slalom = class(Tcourse) " quel étourdi

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

Discussions similaires

  1. Comment faire retourner un objet par un constructeur
    Par Jean-Marc68 dans le forum C#
    Réponses: 4
    Dernier message: 26/11/2014, 03h06
  2. Créer un objet dans le constructeur
    Par momedalhouma dans le forum Général Java
    Réponses: 2
    Dernier message: 31/03/2013, 23h49
  3. Instanciation d'un objet avec un constructeur par défaut
    Par nosferatu dans le forum Langage
    Réponses: 3
    Dernier message: 18/12/2012, 14h05
  4. Réponses: 7
    Dernier message: 27/05/2011, 17h58
  5. Instancier plusieurs objets malgré un constructeur privée
    Par derlone dans le forum Débuter avec Java
    Réponses: 2
    Dernier message: 01/05/2009, 22h37

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