RECHERCHER :
COMMUNAUTE MP
Identifiez vous ...
Devenir Membre
J'ai oublié mon MDP
DOMAINE MP
Bavardages
Langages Généraux
Langages Web
Langages DotNet
Autres langages
Dev. Jeux Video
Sécurité
Sys. Exploitation
Graphismes
Logiciels
Réseaux
Bases de données
Méthodologies
Emplois High-tech
Aide juridique
Articles juridiques
FORUM
Index des forums
Ajouter un sujet
Rechercher sujet
Contact Responsable
Devenir modérateur
CHAT MP IRC
Votre pseudo ...
Srv: irc.moteurprog.com
Chan: #MoteurProg
PARTICIPER
Plus de 3500 emplois.
Rechercher un job
Déposez votre CV
Emplois High-tech

Visiteur MP

 La surcharge en foxpro, ça existe ?

Forum : FOXPRO
Sous Catégorie : Aucune
Type du sujet : Sujet Normale
FAQ : FAQ FOXPRO

SUIVI DES SUJETS PAR MAIL

SUIVI PAR MAIL INACTIF

RESOLUTION DU SUJET SUJET RESOLU
BLOQUAGE DU SUJET SUJET ACTIF
APPARTENANCE A LA FAQ N'APPARTIENT PAS A LA FAQ


PAGE : [1]

POSTER UN NOUVEAU SUJET REPONDRE A CE SUJET

FORUM FOXPRO

PREMIERE PAGE

PAGE PRECEDENTE

Page précedente

Page suivante

PAGE SUIVANTE

DERNIERE PAGE
nicolas_lepot
Nouveau membre
Inscrit : 02/02/2008
Messages : 16
Message
#155712
Posté le 09/08/08 à 16:43
Bonjour à tous,

Je recois une erreur lorsuq'au sein d'une même classe, deux méthodes ayant le même nom mais un prototypage différent (pas seulement en type mais en nombre aussi) sont appelées.

Ex :

define class session as custom

procedure setSession()
this.setSession( _screen.tools.getNewId() , this.parent.getUsername() )
endproc

procedure setSession( sId)
this.setSession( sId, this.parent.getUsername() )
endproc

procedure setSession( sId, sNom)
requete = "insert ...."
sqlexec(...,requete,...)
endproc

enddefine

J'ai en tête que le compilateur génère une "signature" composée de la fonction + le nombre et le type des paramètres... J'ai cherché, mais je ne trouve rien qui parle de ceci.

Q: deux méthode de même nom n'ont pas le droit de coexister en foxpro ???


Merci d'avance,

Nico

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 

Publicité
Inscrit : X
Messages : X
Message
#Aucun

HAUT DE PAGE

  

michelatoutfox
Modérateur :
- FoxPro
Avatar de michelatoutfox
Inscrit : 12/10/2004
Messages : 686
Message
#155713
Posté le 09/08/08 à 17:29
Bonjour Nicolas,

Eh non, en VFP, ça ne se passe pas comme ça Smiley Fox est un langage non typé.

Donc si ta procedure SetSession peut recevoir 0, 1, 2, ou n paramètres, tu vas écrire une seule procedure, et analyser le nombre et le type de paramètres reçus:

Define Class ma_session As Custom Procedure setSession( sId, sNom) Do Case Case Pcount()=0 This.setSession( _Screen.tools.getNewId() , This.Parent.getUsername() ) Case Pcount()=1 If Vartype(m.sId)="C" && par exemple This.setSession( sId, This.Parent.getUsername() ) Endif Case Pcount()=2 If Vartype(m.sId)="C" And Vartype(m.sNom)="C" && par exemple Local lcRequete As String lcRequete = "insert ...." SQLExec(...,lcRequete,...) ENDIF Endcase Endproc Enddefine


Note au passage que le mot session est un mot réservé (c'est une classe de base de fox), et que ta classe se portera mieux si elle s'appelle ma_session par exemple.
D'autre part, l'utilisation du préfixage des variables mémoires est très fortement recommandée (si par hasard tu as un jour un champ sId sur un curseur ouvert dans le scope de ta procedure, c'est lui qui sera utilisé si tu n'as pas forcé par le préfixage par m. Définis toujours la portée de tes variables: ta variable requete sans définition de portée est donc implicitement private, et il vaut mieux travailler en déclaration locale. Et enfin, puisque fox n'est pas typé, pene à pseudo-typer tes variables dans leur déclaration, ça te facilitera la vie en maintenance par la suite.
__________________________
Atoutfoxement,
Michel
AtoutFox, Communauté Francophone des Professionnels FoxPro

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE ALLER VOIR SON SITE

nicolas_lepot
Nouveau membre
Inscrit : 02/02/2008
Messages : 16
Message
#155714
Posté le 09/08/08 à 18:27
re,

Merci pour cette réponse rapide et pour les autres petits conseils.

En effet, j'ai souffert avec la la portée des variables dans un précédent programme...

Cordialement,

nico

HAUT DE PAGE

PROFIL MEMBRE LUI ECRIRE 
POSTER UN NOUVEAU SUJET REPONDRE A CE SUJET

PREMIERE PAGE

PAGE PRECEDENTE Page précédente

Page suivante

PAGE SUIVANTE DERNIERE PAGE

FORUM FOXPRO



    PAGE : [1]



.: Site Web développé par Julien Pichot et l'équipe MPWG avec www.evolvia-web.com :.