Accueil > Forum > > > > adresse d'une fonction membre d'une classe
adresse d'une fonction membre d'une classe
dimanche 2 janvier 2005 à 16:53:01 |
adresse d'une fonction membre d'une classe

gagah1
|
Salut à tous! Je voudrais avoir l'adresse mémoire d'une fonction membre d'une classe, alors que l'ISO C++ l'interdire l'accès. Je m'explique: J'ai une classe exemple: class CXx { public: ....... int fn(int); ..... }; et j'ai une déclaration de fonction: int (*fnglobal)(int); et une classe CXx classeX; et quand je veux recuperer l'adresse : fnglobal = &classeX.fn; le compilateur m'envoie une erreur: >>ISO C++ interdire l'accès de l'adresse mémoire d'une membre de la classe CXx. Donc comment je fais pour avoir cette adresse mémoire? Merci!
|
|
dimanche 2 janvier 2005 à 18:01:26 |
Re : adresse d'une fonction membre d'une classe

plus_plus_fab
|
C'est pas possible, le typage est trop fort ! Si ça l'était, tu pourrais parvenir à violer l'encapsulation. Tu veux t'en servir pour l'appeler autrement que depuis un objet ? Dans ce cas voir les adaptateurs de fonction membre (mem_fun, mem_fun_ref)
|
|
dimanche 2 janvier 2005 à 18:24:00 |
Re : adresse d'une fonction membre d'une classe

gagah1
|
Tu peux m'expliquer ces adaptateurs de fonction membre?
|
|
dimanche 2 janvier 2005 à 18:25:11 |
Re : adresse d'une fonction membre d'une classe

DARKSIDIOUS
|
Non seulement c'est déconseillé (il faut se rappeller qu'il s'agit de classe, et donc, la classe doit être instanciée pour pouvoir accèder à ses membres, et donc, les adresses sont toujours modifiées) mais c'est interdit ! Il vaux mieux passer par une fonction assistante de la classe, en dehors de celle-ci, qui puisse faire ce que tu veux. Tu peux par exemple lui passer un pointeur vers l'objet voulut... _______________________________________ DarK Sidious [Responsable API/VB du site www.ProgOtoP.com] Téléchargez ProgOtoP API Viewer
|
|
dimanche 2 janvier 2005 à 19:42:47 |
Re : adresse d'une fonction membre d'une classe

cosmobob
|
salut, sinon mets ta fonction fn en static, et normalement t'auras plus de problemes. class CXx { public: ....... static int fn(int); ..... };
|
a++ ;)
|
|
dimanche 2 janvier 2005 à 20:51:52 |
Re : adresse d'une fonction membre d'une classe

vecchio56
|
Ce serait illogique de faire un truc comme ca, puisqu'il n'y aurait pas de this... ou alors ya un truc que j'ai pas compris Comment appellerais tu fnglobal?
|
|
dimanche 2 janvier 2005 à 22:41:18 |
Re : adresse d'une fonction membre d'une classe

gagah1
|
Merci pour ce petit débat très instructif.
|
|
lundi 3 janvier 2005 à 09:35:40 |
Re : adresse d'une fonction membre d'une classe

ymca2003
|
C'est ça que tu veux faire ?
#include <stdio.h> #include <stdlib.h>
class MyClass {
public:
int MyMethod(int a) {return 2*a;}
};
typedef int (MyClass::* PFN)(int);
int main(int argc, char* argv[])
{
MyClass obj;
PFN pfn = MyClass::MyMethod;
printf("%d\n", (obj.*pfn)(2));
return 0;
}
|
|
lundi 3 janvier 2005 à 11:56:48 |
Re : adresse d'une fonction membre d'une classe

gagah1
|
Je veux que PFN ne depend pas de MyClass , juste un pointeur d'une fonction globale comme j'ai précisé au-debut.
|
|
lundi 3 janvier 2005 à 11:58:54 |
Re : adresse d'une fonction membre d'une classe

ymca2003
|
Alors là c'est pas possible si elle est pas static, les fct membres des classes necissitent un objet pour les appeler...
|
|
Cette discussion est classée dans : fonction, int, classe, adresse, membre
Répondre à ce message
Sujets en rapport avec ce message
Pointeur vers une fonction dans une classe ... [ par MoDDiB ]
Supposons que j'ai la fonctionvoid Fonction(int test,int t);appartenant a la classe Cclass.Quelle est la syntaxe pour creer un pointeur vers cette fon
Probleme avec les threads en C++ sour linux [ par benjamvs ]
Bonjour,j'ai le probleme suivant a regler en C++je travaille sur les threads sous linux, avec la librairie "pthread"Lorsque je crée un thread, celui c
Definition d'une classe membre d'une autre classe [ par raidentr ]
Je veux définir une classe membre d'une atre classe, est ce que c'est possible ? Exemple :class voiture{public : char marque[128]; int annee; class co
(__cdecl *) => kesako? [ par Oeil_de_taupe ]
Bonjour tout le monde, J'ai créé deux classes qui représentent un protocole pour envoyer des données entre deux PC. Lors de l'appele de leur construc
Fonction membre vers pointer non typé [ par foxz ]
Est-il possible de convertir une fonction membre (d'une class) vers un pointer non typé(void*)class A{ int foo(int,int){};void init(){ void *t; A *x
pointeur de fonction membre [ par maximus4 ]
bonjour a tous,je voudrai savoir comment on passe en paramètre d'une fonction membre une autre fonction membre d'une autre class déjà instanciéeex:cla
Pointeur de fonction membre de classe dérivé en paramètre de fonction de classe mère [ par Fituza ]
Bonsoir (encor moi c'est la dernière promis :D), je souhaiterai pouvoir passer la fonction QueryList de ma classe Client en paramètre de la fonction R
Erreur lors d'un ajout de classe [ par bedrohung ]
Bonsoir, je débute sur le C++ et je travaille sur un projet d'envoie de SMS via un modem GSM. J'utilise une classe liaison série pour communiquer avec
utilisation des fichiers dans une fonction [ par chroctar ]
Bonjour, Pourriez vous m'aider ? Je dois faire un projet qui consiste à créer un agenda numerique.Voila mon probleme :J'ai créé une fonction dans laqu
Creer objet avec classe heritée [ par jonas03 ]
Bonjour à tous,Voici mon problème : j'ai une classe personne et 2 classe dérivées interne et externe mais je veut créer dans mon main une personne mai
Livres en rapport
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Forum
RE : SAC A DOS RE : SAC A DOS par hadjkaddour
Cliquez pour lire la suite par hadjkaddour
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|