+ Répondre à la discussion Actualité déjà publiée
  1. #1
    Responsable Delphi

    Avatar de gvasseur58
    Homme Profil pro
    Cultivateur de code (bio)
    Inscrit en
    février 2013
    Messages
    876
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Cultivateur de code (bio)
    Secteur : Enseignement

    Informations forums :
    Inscription : février 2013
    Messages : 876
    Points : 9 698
    Points
    9 698
    Billets dans le blog
    29

    Par défaut Les méthodes avec Free Pascal/Lazarus (1/2), un tutoriel de Gilles Vasseur

    POO à gogo !
    Les méthodes avec Free Pascal/Lazarus (1/2) : méthodes statiques et virtuelles - constructeurs et destructeurs

    À quoi servent les méthodes statiques ? Comment mettre en œuvre l'héritage ? Qu'apportent les méthodes virtuelles ? Comment se manifeste le polymorphisme ? Quel rôle joue l'héritage dans un constructeur ou un destructeur ? Que se passe-t-il si un constructeur déclenche une erreur ? Qu'est-ce que la surcharge d'un constructeur ou d'un destructeur ? Avec ce tutoriel, vous allez consolider vos connaissances concernant la Programmation Orientée Objet en approfondissant les notions de méthode, de constructeur et de destructeur. Vous pourrez répondre aux questions posées (y compris dans une soirée mondaine ) et produire des applications efficaces et surprenantes !


    http://gilles-vasseur.developpez.com...es-methodes-1/

    Et vous ?

    Que pensez-vous de ce tutoriel ?
    Avez-vous l'habitude de "penser POO" lorsque vous développez vos applications ?
    Ou ce tutoriel vous incitera-t-il à le faire ?


    Retrouver les meilleurs cours et tutoriels pour apprendre Lazarus
    Retrouver les meilleurs cours et tutoriels pour apprendre la programmation

    [Un merci tout particulier à ThWilliam qui, grâce à ses critiques pertinentes, a beaucoup contribué à ce tutoriel !]
    Accès à mon site et à mon blog. Actualités, cours et ressources Delphi, Lazarus et Pascal.
    Pensez à la balise - Quelqu'un vous a aidé ou vous appréciez une intervention ? Pensez au

  2. #2
    Membre expérimenté

    Homme Profil pro
    au repos
    Inscrit en
    février 2014
    Messages
    364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : au repos

    Informations forums :
    Inscription : février 2014
    Messages : 364
    Points : 1 567
    Points
    1 567

    Par défaut

    Bonjour Gilles.

    Très beau tutoriel .

    Je viens d'expérimenter la déclaration de plusieurs constructeurs dans une classe enfant.
    Comme classe ancêtre, j'ai pris TCustomControl dont le constructeur est : constructor Create(AOwner: TComponent); override;
    Il faut remonter très loin dans la généalogie pour trouver le constructeur virtuel.
    Dans la classe enfant (TBasicPanel), je voulais deux constructeurs.
    Voici un exemple (pas très futé) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    TBasicPanel = class(TCustomControl)
        constructor Create(AOwner: TComponent; AParam: string); reintroduce;
        constructor Create(AOwner: TComponent; AParam: integer); reintroduce;
      end;
    Fidèle à mes habitudes prises sous Delphi7, j'utilise la directive reintroduce puisque je modifie les paramètres d'appel du constructeur de TCustomControl.
    Si j'avais utilisé la directive overload, j'aurais permis d'instancier un objet avec le constructeur de TCustomControl, ce que je voulais interdire.
    Et ceci, même si je "signe" le deuxième constructeur : reintroduce; overload; !
    Sous Delphi 7, la directive overload est obligatoire pour plusieurs procédures du même nom. Sous Lazarus, cette directive n'est pas requise.

    Après quelques tests, je trouve Lazarus un peu laxiste avec les directives. Il y a sans doute une différence d'allocation mémoire, mais tout ce qui suit ne génère aucun message d'avertissement :
    - supprimer la directive reintroduce (--> aucune directive : le constructeur statique écrase tout).
    - ajouter virtual : reintroduce; virtual; (--> aucun sens amha, puisque on rend virtuel ce que l'on vient de rendre statique)
    - ou tout simplement : virtual.

    Cordialement
    Thierry

  3. #3
    Membre expert Avatar de Jon Shannow
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    avril 2011
    Messages
    2 191
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : avril 2011
    Messages : 2 191
    Points : 3 397
    Points
    3 397

    Par défaut

    Merci,

    Très beau tuto.

    Ça ne fait de mal de redécouvrir les élémentaires, et de se rendre compte de nos mauvaises habitudes...

    Encore merci.

    JS
    Au nom du pèze, du fisc et du St Estephe
    Au nom du fric, on baisse son froc...

  4. #4
    Responsable Delphi

    Avatar de gvasseur58
    Homme Profil pro
    Cultivateur de code (bio)
    Inscrit en
    février 2013
    Messages
    876
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Cultivateur de code (bio)
    Secteur : Enseignement

    Informations forums :
    Inscription : février 2013
    Messages : 876
    Points : 9 698
    Points
    9 698
    Billets dans le blog
    29

    Par défaut

    Merci pour les encouragements. Mais les critiques seront les bienvenues aussi, sinon je vais me croire obligé de publier la suite qui portera sur des sujets plus rares comme les méthodes de classe, par exemple .

    Sinon, ThWilliam a raison : Free Pascal n'est pas très regardant sur l'utilisation, même incohérente, de directives. Je fais confiance à son esprit systématique pour étudier les conséquences de certains agencements exotiques .

    Cordialement,

    Gilles
    Accès à mon site et à mon blog. Actualités, cours et ressources Delphi, Lazarus et Pascal.
    Pensez à la balise - Quelqu'un vous a aidé ou vous appréciez une intervention ? Pensez au

  5. #5
    Membre chevronné
    Profil pro
    Inscrit en
    janvier 2010
    Messages
    589
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : janvier 2010
    Messages : 589
    Points : 2 115
    Points
    2 115

    Par défaut

    Félicitations pour ce travail de "vulgarisation" qui participe de manière notable à l'enrichissement de la documentation Lazarus

    Je serai par contre plus dubitatif pour son usage lors d'une soirée mondaine

Discussions similaires

  1. Réponses: 24
    Dernier message: 29/07/2016, 17h49
  2. Réponses: 0
    Dernier message: 24/11/2011, 12h10

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