Problème avec des pointeurs [C++] - Programmation
Marsh Posté le 26-11-2001 à 20:08:08
problème de design, sûrement ....
sinon si tu as une classe de type 'myClass' avec une méthode 'myMethod' que tu veux appeler à partir d'un pointeur void :
void* ptr = ...;
((myClass*)ptr)->myMethod();
Marsh Posté le 26-11-2001 à 20:22:27
design, c vrai que...
[edtdd]--Message édité par deathsharp--[/edtdd]
Marsh Posté le 26-11-2001 à 21:00:38
tu declares
class B;
class A
{
B * unB;
};
class B
{
};
et tu fais les choses proprement et vire le code du .h vers le .cpp avec au besoin un inline pour pas penaliser les perfs
Marsh Posté le 26-11-2001 à 21:01:51
sinon t'es pas obligé de coller du void
Si j'ai bien compris tu as une class A qui pointe vers B et B qui point vers A ?
dans A.h tu met au debut :
class B;
et dans B.h tu met:
class A;
et dans a.cpp tu inclue 'B.h' et dns b.cpp tu inclue 'a.h'
(bon wpk m'as graté de qq secondes )
[edtdd]--Message édité par chrisbk--[/edtdd]
Marsh Posté le 26-11-2001 à 21:02:11
la classe A ne pourra appeler aucune fonction de B
Marsh Posté le 26-11-2001 à 21:04:17
deathsharp a écrit a écrit : la classe A ne pourra appeler aucune fonction de B |
sisi mais seulement ds le cpp
Marsh Posté le 26-11-2001 à 21:05:44
dans ce k oui
Marsh Posté le 26-11-2001 à 21:25:30
chrisbk a écrit a écrit : et dans a.cpp tu inclue 'B.h' et dns b.cpp tu inclue 'a.h' |
j'aimerais bien qu'alload nous décrive son problème. la dernière fois que j'ai fait ça, c'était un _gros_ problème de design.
Marsh Posté le 26-11-2001 à 21:41:25
En fait, j'ai juste placé les définitions des fonctions après les deux class, et pour le pointeur de type void* j'ai utilisé (CClass2*)pointeur)->Fonction() pour pouvoir l'utiliser, et ça marche
Marsh Posté le 26-11-2001 à 22:19:14
youdontcare a écrit a écrit : j'aimerais bien qu'alload nous décrive son problème. la dernière fois que j'ai fait ça, c'était un _gros_ problème de design. |
ben je dis pas que son design est nickel, je lui donne une solution pour faire malgré
Marsh Posté le 26-11-2001 à 22:25:54
chrisbk a écrit a écrit : ben je dis pas que son design est nickel, je lui donne une solution pour faire malgré |
j'avais bien compris, la remarque était plus pour alload que pour cette méthode.
Marsh Posté le 26-11-2001 à 20:05:08
Bon, je dispose d'une class qui a besoin d'avoir un pointeur sur une autre class définie après elle.
Pour avoir le pointeur j'utilise un void* comme je ne peux pas faire CLaclasseddefinieapres*.
Le problème, c'est qu'il faut aussi que j'utilise une fonction de la deuxième class.
Mais là ça marche plus, ça me dit que le pointeur doit être une class.
Une idée de comment résoudre cette imbrication?