Class en delphi - Delphi/Pascal - Programmation
Marsh Posté le 13-08-2003 à 15:57:07
il hérite des membres, des méthodes, etc...
pas des valeurs affectés aux propriété ça n'a rien à voir
tu confond classe et instance
en gros ta secondclasse hérite de X et Y mais pas des valeurs contenu dedans, elle hérite de l'"architecture"
Marsh Posté le 13-08-2003 à 15:58:08
ok merci,
mais qu'est ce qu'on entend par une "instance de classe" ? c'est aussi qqch que je n'ai jamais vraiment compris ...
Marsh Posté le 13-08-2003 à 16:35:22
une classe c'est juste un "squelette", les attribut n'y ont pas de valeurs, ça ne prend pas de place en mémoire
les instances de classes (appelées souvent objets, en POO) c'est ce qui résulte de l'appel au .Create, ça prend de la place en mémoire, ça stocke les valeurs des attributs, etc.
Dans ce cas-ci tu assignes des valeurs au X et Y d'un objet de type "base", mais pas à l'objet de type "second", du coup ses X et Y sont restés à 0
Marsh Posté le 13-08-2003 à 20:17:29
merci pour les réponses !
Il me reste encore une petite question à vous poser (pour le moment )
A quoi ca sert de mettre "virtual", "override", "overload", "reintroduce",... dans les définitions ?
Marsh Posté le 13-08-2003 à 20:22:00
virtual = les descendants pourront implémenter une fonction identique, qui sera appelée à la place de celle du parent, même si l'objet est stocké dans une variable du type du parent
override = on défini un truc qui était déjà défini par le parent (qui a probablement mis virtual ou override lui aussi)
overload = fonction qui a le même nom qu'une autre, mais des paramètres différents
reintroduce = overload+override (on écrase la fonction d'un parent, mais en changeant ses paramètres, de manière à ce que la fonction du parent avec anciens params ne soit plus visible)
PS: quand je dis fonction ça s'applique aussi aux procédures évidemment
Marsh Posté le 13-08-2003 à 15:52:04
'Lu,
J'apprends les classes en delphi et toutes les histoires d'héritage, mais il y a quelque chose que je ne comprends pas trop :
Result1 me renvoie 30 : normal
Result2 me renvoie 100 : pourquoi ?
Pourquoi est-ce que result2 ne me renvoie-t-il pas 130 ? Pcq si j'ai bien compris, SecondObj va hériter de toutes les données de BaseObj ... mais ici il n'hérite pas de X ni de Y
(Meme que j'ai oublié de detruire mes objets mais ca on s'en balance pour le moment )
Message édité par Yana le 13-08-2003 à 15:55:57