Pages: (3) [1] 2 3   ( Go to first unread post ) Reply to this topicStart new topicStart Poll

> Question syntaxe
frts
Posted: 16/02/07 10:09
Quote Post


User
*

Group: Membre
Posts: 47
Member No.: 1380
Joined: 05/02/07
Submissions: None Submitted
Downloads: No Files Downloaded



Bonjour, j'ai 2 petites questions concernant les pointeurs sur méthodes.

1) j'ai une variable membre : ptr proc m_pfFunction

et je veux la faire pointer sur une des méthodes de ma classe.

J'ai essayé la syntaxe : m_pfFunction= proc ptr MaMethode

mais ça m'est refusé à la compil. J'ai fouillé dans les docs, mais je n'ai pas trouvé. Quelqu'un peut-il me dire si aussi bien mon instanciation que mon assignation sont correctes ?

2) suite de la question 1. Je veux pouvoir assigner ma variable à des méthodes différentes, et à certains endroits pouvoir tester ma variable m_pfFunctionpour savoir sur quelle méthode elle pointe. Est-ce techniquement possible d'interroger la variable ? (ex: if m_pfFunction= MaMethode ...)

Merci :)

This post has been edited by frts on 16/02/07 10:10
PMEmail Poster
Top
root
Posted: 16/02/07 10:48
Quote Post


God of the forum
*******

Group: Admin
Posts: 6101
Member No.: 2
Joined: 10/05/02
Submissions: 10 
Downloads: 19



QUOTE (frts @ 16/02/07 10:08)
1) j'ai une variable membre : ptr proc m_pfFunction

et je veux la faire pointer sur une des méthodes de ma classe.

J'ai essayé la syntaxe : m_pfFunction= proc ptr MaMethode

mais ça m'est refusé à la compil. J'ai fouillé dans les docs, mais je n'ai pas trouvé. Quelqu'un peut-il me dire si aussi bien mon instanciation que mon assignation sont correctes ?


Quel est le message d'erreur exactement ?


PM
Top
frts
Posted: 16/02/07 11:58
Quote Post


User
*

Group: Membre
Posts: 47
Member No.: 1380
Joined: 05/02/07
Submissions: None Submitted
Downloads: No Files Downloaded



malheureusement rien de plus qu'une erreur de syntaxe :(

code A712
PMEmail Poster
Top
root
Posted: 16/02/07 17:31
Quote Post


God of the forum
*******

Group: Admin
Posts: 6101
Member No.: 2
Joined: 10/05/02
Submissions: 10 
Downloads: 19



Peux tu nous fournir ton code que l'on puisse avoir une meilleur vu de ce que tu as fait
PM
Top
jamie
Posted: 17/02/07 09:51
Quote Post


Hyper User
*****

Group: _Membre
Posts: 529
Member No.: 461
Joined: 24/05/04
Submissions: None Submitted
Downloads: No Files Downloaded



C'est sympa de voir des tentatives de nage dans le grand bain,
sans aucun sarcasme de ma part, vous etes le bienvenu.

En fait l'approche est un peut melange de genres car dans le cas d'utilisation
d'une classe il vaut mieux rester avec une syntaxe de membre de classe plutot
que de mettre un bout d'abal dedans ....... donc

Public Indirect Function One:( a%, b$ )

Public Virtual Function Two:(d%,y%)

Public Indirect Function Pointer Three(x%,y$)

Public Virtual Function Pointer Four(n%,m%)

Deja il faut comprendre la difference entre Indirect et Virtual, et par la suite
lorsque on fait de la derivation par classe de base : Overload.

Il faut remarquer aussi les Membres Three et Four sont des pointeurs de methodes, et ce qui
est mieux qu'on abal, elles sont signés.

C'est pour mettre l'eau a la bouche donc ...........
A suivre ............
:rolleyes:

This post has been edited by jamie on 17/02/07 12:39
PMEmail Poster
Top
root
Posted: 17/02/07 10:38
Quote Post


God of the forum
*******

Group: Admin
Posts: 6101
Member No.: 2
Joined: 10/05/02
Submissions: 10 
Downloads: 19



lol jamie nous fait saliver.
PM
Top
jamie
Posted: 17/02/07 12:25
Quote Post


Hyper User
*****

Group: _Membre
Posts: 529
Member No.: 461
Joined: 24/05/04
Submissions: None Submitted
Downloads: No Files Downloaded



Donc pour la suite de cette histoire considerons la classe suivate

#class exemple

public virtual function one:(a%)
print=1:("one(",$,")"),Conv$(a)
end

public indirect function two:(a$)
print=1:("two(",$,")"),a
end

public virtual function pointer un(a%)
public indirect function pointer deux(a$)
public virtual function pointer trois(a$)

public inline constructor init:
create un ( one )
create deux ( two )
create trois( two )
end
#endclass

donc deux fonctions public one et two et
trois pointeurs de fonction un, deux et trois puis
un constructeur pour assurer l'initialisation.
a suivre ............. :rolleyes:
PMEmail Poster
Top
jamie
Posted: 17/02/07 12:27
Quote Post


Hyper User
*****

Group: _Membre
Posts: 529
Member No.: 461
Joined: 24/05/04
Submissions: None Submitted
Downloads: No Files Downloaded



premier question quel est la taille d'une instance de cette classe ? :blink:
PMEmail Poster
Top
jamie
Posted: 17/02/07 12:28
Quote Post


Hyper User
*****

Group: _Membre
Posts: 529
Member No.: 461
Joined: 24/05/04
Submissions: None Submitted
Downloads: No Files Downloaded



deuxieme question : et pourquoi ? :blink:
PMEmail Poster
Top
jamie
Posted: 17/02/07 12:30
Quote Post


Hyper User
*****

Group: _Membre
Posts: 529
Member No.: 461
Joined: 24/05/04
Submissions: None Submitted
Downloads: No Files Downloaded



Essayons avec un petit programme :

program " "

exemple E

segment 0
E.one(1)
E.un(2)
E.two("two")
E.deux("deux")
eseg 0
End

pour voir que ca marche :rolleyes:
PMEmail Poster
Top
jamie
Posted: 17/02/07 12:31
Quote Post


Hyper User
*****

Group: _Membre
Posts: 529
Member No.: 461
Joined: 24/05/04
Submissions: None Submitted
Downloads: No Files Downloaded



Troisieme question : Quelle est la difference entre Indirect et Virtual ? :blink:
PMEmail Poster
Top
jamie
Posted: 17/02/07 12:36
Quote Post


Hyper User
*****

Group: _Membre
Posts: 529
Member No.: 461
Joined: 24/05/04
Submissions: None Submitted
Downloads: No Files Downloaded



Considerons la classe derivée :

#class derived
(public exemple)
public overload function one:(a%)
print=1:("ONE : /",HZ4),a
end
#endclass

avec le programme :

program " "

exemple E
derived D

segment 0
E.one(1)
E.un(2)
E.two("two")
E.deux("deux")

D.one(1)
D.un(2)
D.two("two")
D.deux("deux")
eseg 0
End

:unsure:
PMEmail Poster
Top
root
Posted: 17/02/07 12:36
Quote Post


God of the forum
*******

Group: Admin
Posts: 6101
Member No.: 2
Joined: 10/05/02
Submissions: 10 
Downloads: 19



Jamie devient prof :-)
Mais avant une intérrogation, normalement, y a pas un cours magistral ?
PM
Top
jamie
Posted: 17/02/07 12:37
Quote Post


Hyper User
*****

Group: _Membre
Posts: 529
Member No.: 461
Joined: 24/05/04
Submissions: None Submitted
Downloads: No Files Downloaded



Pour comprendre

1) la derivation :unsure:
2) la methode overload :unsure:
3) la construction :unsure:

:blink:

PMEmail Poster
Top
root
Posted: 17/02/07 12:40
Quote Post


God of the forum
*******

Group: Admin
Posts: 6101
Member No.: 2
Joined: 10/05/02
Submissions: 10 
Downloads: 19



Déjà , moi, virtual, indirect et inline je ne connais pas , donc pas la peine d'aller plus loin, j'ai déjà pas compris l'énnoncé du probléme.
Je laisse donc les autres résoudre ce problème.

Jamie la communauté à besoin d'une bonne documentation et d'un bon didactitiel pour se mettre à niveau sur l'OBJET sinon, tu vas trés vite perdre tes éléves qui vont fuir tes cours ;-)
PM
Top
0 User(s) are reading this topic (0 Guests and 0 Anonymous Users)
0 Members:

Topic Options Pages: (3) [1] 2 3  Reply to this topicStart new topicStart Poll

 

webcron.org Get Firefox! prologue-community.org est monitoré par ikoula.fr Referenceur Gratuit www.prologue-community est mis en évidence sur internet grace à daubresse.fr
moteur de recherche - referencement
Conformément à l'article 34 de la loi "Informatique et Liberté" vous disposez d'un droit d'accès, de modification, de rectification et de suppression des données qui vous concernent.
Pour l'exercer, merci de nous contacter : CONTACT US

www.prologue-community.org n'est pas enregistré à la CNIL
www.prologue-community.org est hébergé sur visit.fr

www.prologue-community.org est indépendant de la société Prologue
Une grande partie des logiciels et outils cités sur www.prologue-community.org sont des produits et marques déposées par la société Prologue


MKPortal M1.1 Rc1 ©2003-2005 All rights reserved
Page generated in 0.01132 seconds with 2 queries