Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

WD8 / POO: au secours !!!!

16 réponses
Avatar
I.G.LOG
Je viens de télécharger la dernière version de WD 8 (814i) et j'ai ntoujours
warnings et plantages sur le code suivant:

// Déclaration
Objet1 est une classe
Designation est une chaine
Fin
Objet2 est une classe
Hérite de objet1
Designation est une chaine // WARNING: membre masque le membre
Designation de Objet1
Fin

// Go
Objet2:Objet1::Designation // j'ai une erreur grave à l'exécution

Sous Windev 5.5, ce code fonctionnait parfaitement. Et je migre le projet
depuis quatre mois !!!
Avez-vous une solution à ce problème sans que je sois obligé de modifier
toutes mes classes ?

PS: quand même pas normal de ne pas pouvoir faire ça. Je vous donne un
exemple "éloquent" d'utilisation:
Articles et Catégories d'articles

// Classe catégorie d'article
Categorie est une classe
Ident est une chaine
Designation est une chaine
fin

// Classe article
Article est une classe
Hérite de Categorie
Ident est une chaine
Reference est une chaine
Designation est une chaine // Warning du compilo
et plante à l'exé
fin

10 réponses

1 2
Avatar
I.G.LOG
Pour ceux que ca interresse, précision après essais.
Le plantage ne survient que dans le cas ou on a passé l'objet à une fonction
avec l'affectation du membre ancetre à une variable, soit:

// Déclaration
Objet1 est une classe
Designation est une chaine
Fin
Objet2 est une classe
Hérite de objet1
Designation est une chaine // WARNING: membre masque le membre
Designation de Objet1
Fin



// Programme test
lObj est un Objet2

lObj:Objet1:Designation = "Titi"
lObj:Designation = "Toto"
Essai(lObj)
RETOUR


PROCEDURE Essai(pObj)

lDesign est une chaine

info(pObj:Objet1::Designation) // OK !
lDesign = pObj:Objet1::Designation // ERREUR grave à l'exécution !!!!
Avatar
Pierre-Yves TAVERNIER
Bonjour,

Pourquoi as tu bessoin de redéfinir le membre Designation ?
Pour toi à quoi sert l'héritage ?

Cordialement

PYT

"I.G.LOG" a écrit dans le message de
news:c5h8gp$a5m$
Pour ceux que ca interresse, précision après essais.
Le plantage ne survient que dans le cas ou on a passé l'objet à une


fonction
avec l'affectation du membre ancetre à une variable, soit:

// Déclaration
Objet1 est une classe
Designation est une chaine
Fin
Objet2 est une classe
Hérite de objet1
Designation est une chaine // WARNING: membre masque le membre
Designation de Objet1
Fin



// Programme test
lObj est un Objet2

lObj:Objet1:Designation = "Titi"
lObj:Designation = "Toto"
Essai(lObj)
RETOUR


PROCEDURE Essai(pObj)

lDesign est une chaine

info(pObj:Objet1::Designation) // OK !
lDesign = pObj:Objet1::Designation // ERREUR grave à l'exécution !!!!




Avatar
elecoest
"Pierre-Yves TAVERNIER" a écrit dans le
message de news: 407c3192$0$17490$

Pourquoi as tu bessoin de redéfinir le membre Designation ?



Je me suis posé la même question.

Pour toi à quoi sert l'héritage ?



A lui de répondre ;-)

Je ne pense pas qu'il veuille surcharger le membre désignation (c'est normal
que WD7.5 passe en warning, pour moi on surcharge une méthode, pas un
membre) mais bien utiliser les 2 membres Désignation, un pour la catégorie,
un pour son produit.

Emmanuel


---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.618 / Virus Database: 397 - Release Date: 09/03/2004
Avatar
Pierre-Yves TAVERNIER
En relisant sont exemple, il doit confondre héritage (est une sorte de) et
agregation (appartient à) :

A lui de nous expliquer ce qu'il veut faire.

PYT
Avatar
Romain PETIT
Pierre-Yves TAVERNIER avait soumis l'idée :

A lui de nous expliquer ce qu'il veut faire.



A mon avis il veut simplement pouvoir migrer sans devoir réécrire ses
classes WD55 (codées bizarrement il est vrai)... ce qui risque de
s'avérer difficile.

A+

--
Romain PETIT
http://cerbermail.com/?IJmancZl88
(cliquez sur le lien ci-dessus pour me contacter en privé)
Avatar
I.G.LOG
Bonjour à tous,
Je veux simplement gérer les désignations de l'article et de sa catégorie.
En effet, la notion est plus agrégation (appartient à) que héritage (est une
sorte de).
Mais comment modéliser ce concept. (en s'appuyant sur l'expemple Article -
Catégorie d'article)

"Romain PETIT" a écrit dans le message de
news:
Pierre-Yves TAVERNIER avait soumis l'idée :

> A lui de nous expliquer ce qu'il veut faire.

A mon avis il veut simplement pouvoir migrer sans devoir réécrire ses
classes WD55 (codées bizarrement il est vrai)... ce qui risque de
s'avérer difficile.

A+

--
Romain PETIT
http://cerbermail.com/?IJmancZl88
(cliquez sur le lien ci-dessus pour me contacter en privé)



Avatar
Romain PETIT
I.G.LOG a formulé la demande :
Bonjour à tous,



Bonjour,

Je veux simplement gérer les désignations de l'article et de sa catégorie.
En effet, la notion est plus agrégation (appartient à) que héritage (est une
sorte de).
Mais comment modéliser ce concept. (en s'appuyant sur l'expemple Article -
Catégorie d'article)



Pourquoi ne pas définir un membre spécifique de la classe héritée ?
(évidemment tu vas devoir remplacer du code...)

// Classe catégorie d'article
Categorie est une classe
Ident est une chaine
Designation est une chaine
fin

// Classe article
Article est une classe
Hérite de Categorie
IdentArticle est une chaine
ReferenceArticle est une chaine
DesignationArticle est une chaine
fin

A+

--
Romain PETIT
http://cerbermail.com/?IJmancZl88
(cliquez sur le lien ci-dessus pour me contacter en privé)
Avatar
I.G.LOG
J'avais bien pensé à ça pour régler le problème. Mais il faut que je modifie
toutes les classes !!!
Je trouve que les membres de classes portant le même nom que la rubrique du
fichier était bien "parlant" et j'ai donc utilisé la possibilité de WD5.5
d'accès grace au double deux points (::) Je ne vois plus leur interet si on
nomme les membres différemment.
Il me reste donc encore pas mal de boulot pour migrer ce projet...
Merci à tous

"Romain PETIT" a écrit dans le message de
news:
I.G.LOG a formulé la demande :
> Bonjour à tous,

Bonjour,

> Je veux simplement gérer les désignations de l'article et de sa


catégorie.
> En effet, la notion est plus agrégation (appartient à) que héritage (est


une
> sorte de).
> Mais comment modéliser ce concept. (en s'appuyant sur l'expemple


Article -
> Catégorie d'article)

Pourquoi ne pas définir un membre spécifique de la classe héritée ?
(évidemment tu vas devoir remplacer du code...)

// Classe catégorie d'article
Categorie est une classe
Ident est une chaine
Designation est une chaine
fin

// Classe article
Article est une classe
Hérite de Categorie
IdentArticle est une chaine
ReferenceArticle est une chaine
DesignationArticle est une chaine
fin

A+

--
Romain PETIT
http://cerbermail.com/?IJmancZl88
(cliquez sur le lien ci-dessus pour me contacter en privé)



Avatar
Alain Derome
Bonjour,

> > Mais comment modéliser ce concept. (en s'appuyant sur l'expemple
Article -
> > Catégorie d'article)
>
> Pourquoi ne pas définir un membre spécifique de la classe héritée ?
> (évidemment tu vas devoir remplacer du code...)
>
> // Classe catégorie d'article
> Categorie est une classe
> Ident est une chaine
> Designation est une chaine
> fin
>
> // Classe article
> Article est une classe
> Hérite de Categorie
> IdentArticle est une chaine
> ReferenceArticle est une chaine
> DesignationArticle est une chaine
> fin



J'avais bien pensé à ça pour régler le problème. Mais il faut que je
modifie toutes les classes !!!



Pour cet exercice de da haute voltige, je vous conseille de renommer les
2 membres Designation: DesignationCategorie et DesignationArticle.
WinDev vous signalera alors les erreurs à la compilation.

Si l'un de ces membres continue à s'appeler Designation, vous risquez de
détecter vos erreurs seulement à l'exécution ...


Amicalement,

Alain Derôme
Avatar
I.G.LOG
Je vais essayer ça (beaucoup de boulot). Mais je me repete: si ce n'est pour
accéder aux membres de classe ancetre, a quoi sert donc le double-point (::)
?
Mon problème n'est pas réglé (du moins simplement).
Merci à tous

"Alain Derome" a écrit dans le message de
news:c5iv1q$t2o$
Bonjour,

> > > Mais comment modéliser ce concept. (en s'appuyant sur l'expemple
> Article -
> > > Catégorie d'article)
> >
> > Pourquoi ne pas définir un membre spécifique de la classe héritée ?
> > (évidemment tu vas devoir remplacer du code...)
> >
> > // Classe catégorie d'article
> > Categorie est une classe
> > Ident est une chaine
> > Designation est une chaine
> > fin
> >
> > // Classe article
> > Article est une classe
> > Hérite de Categorie
> > IdentArticle est une chaine
> > ReferenceArticle est une chaine
> > DesignationArticle est une chaine
> > fin

> J'avais bien pensé à ça pour régler le problème. Mais il faut que je
> modifie toutes les classes !!!

Pour cet exercice de da haute voltige, je vous conseille de renommer les
2 membres Designation: DesignationCategorie et DesignationArticle.
WinDev vous signalera alors les erreurs à la compilation.

Si l'un de ces membres continue à s'appeler Designation, vous risquez de
détecter vos erreurs seulement à l'exécution ...


Amicalement,

Alain Derôme





1 2