C++ -> Java

Signaler
Messages postés
7
Date d'inscription
dimanche 8 février 2004
Statut
Membre
Dernière intervention
16 septembre 2005
-
Messages postés
1
Date d'inscription
mercredi 31 mars 2004
Statut
Membre
Dernière intervention
23 mai 2005
-
Bonjour à vous tous.
J'ai une question à vous poser ...
Il se trouve que je dois retranscrire un programme C++ en Java, mais il y a une fonction que je ne comprend même pas en C++, la voici :

#define DEFAULT_ITERATION 200

template <class T>
class Integrateur {
private:
int iteration;
public:

Integrateur (int n = DEFAULT_ITERATION) : iteration(n) {} ~Integrateur () {}

void setStep(int iter) { iteration = iter; }

virtual float integre (T* object, float (T::*methode) (int, float), int n, float a, float b)
{
float x, tmp, sum, step;
int i;
step = (b-a) / iteration;
x = a; for (i 0, sum 0.0 ; i < n; i++)
{
tmp = 0.5 * ((object->*methode)(n, x) + (object->*methode)(n, x+step)) * step;
x += step;
sum += tmp;
}
return sum;
}
};

Je ne comprends pas cette histoire de "float (T::*methode) (int, float)" ... Quelqu'un pourrais m'aider à le comprendre et à le coder en JAVA ? SVP ... Pitié ...

Merci d'avance

Chris

10 réponses

Messages postés
3011
Date d'inscription
jeudi 26 septembre 2002
Statut
Membre
Dernière intervention
27 novembre 2004
8
je sais pas si sur le forum java on sait ce qu'est un pointeur sur methode membre :s

float (T::*methode) (int, float) ca ve dir que methode est un pointeur sur une methode de la class T qui prend en parametre un int et un float et qui retourne un float
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
par contre ca risque d'être difficile de retranscrire ca car je ne suis pas sur que Java supporte actuellement le templates, et pareil pour les pointeurs de fonctions
Messages postés
3011
Date d'inscription
jeudi 26 septembre 2002
Statut
Membre
Dernière intervention
27 novembre 2004
8
ouai en effet, pour les template tu fera sans mais ca depend du contexte, regarde si tu a vraiment besoin que ta classe soit generique

pour le pointeur sur la methode c'est simple, si ta classe n'est pas generique tu n'en aura pas besoin (enfin si j'ai bien compris le code)
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
djl comment tu fais un pointeur sur une fonction en Java (ou plutot une référence j'imagine...)?
Messages postés
3011
Date d'inscription
jeudi 26 septembre 2002
Statut
Membre
Dernière intervention
27 novembre 2004
8
en java, les objet sont de references (tout est dynamique), donc a priori pas besoin d'operateur explicite
tu pourra jamais faire de pointeur sur fonction en java (du moin ce que je sais) et je n'ai jamais entendu parler d'operateur de references en java
c'est la qu'on se rend compte a quel point le c++ est un language evoluer
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
j'ai trouvé un moyen de faire ca avec de interfaces
Messages postés
3011
Date d'inscription
jeudi 26 septembre 2002
Statut
Membre
Dernière intervention
27 novembre 2004
8
rempacer le truc du pointeur sur fonction?
je connais pas trop, tu peut montrer un ex pour voir stp?
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
tu dis que c++ est plus évolué que java? J'en connais qui seraient étonnés d'entendre ca!
pour remplacer les pointeurs de fonction, regarde ca
(en fait j'avais déja manipulé ca sans faire le rapprochement avec les pointeurs de fonction du C++):
http://faqjava.developpez.com/?page=langage_cpp#LANGAGE_SPECIFICATION_pointeur_fonction
Messages postés
3011
Date d'inscription
jeudi 26 septembre 2002
Statut
Membre
Dernière intervention
27 novembre 2004
8
ben comme c'est dit dans ton lien, en java pas de template, ni inline, ni pointeur sur methode, ni heritage multiple,ni surcharge d'operateurs, je connai pas mais j'imagine que la liste doit etre plus longue...
Messages postés
1
Date d'inscription
mercredi 31 mars 2004
Statut
Membre
Dernière intervention
23 mai 2005

c'est un appel de procedure de la classe T qui doit l'implimenté pour que le programe tourne


<gras>dardanil