Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1637 connectés 

 


Dernière réponse
Sujet : [C++] Problème avec des pointeurs
youdontcare

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.


Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
youdontcare

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.

verdoux C'est sûr que les void* en c++, c'est pas bon signe.
chrisbk

youdontcare a écrit a écrit :

:heink:
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é

Alload 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 :)
youdontcare

chrisbk a écrit a écrit :

et dans a.cpp tu inclue 'B.h' et dns b.cpp tu inclue 'a.h'


:heink:
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.

deathsharp dans ce k oui
wpk

deathsharp a écrit a écrit :

la classe A ne pourra appeler aucune fonction de B  




 
sisi mais seulement ds le cpp

deathsharp la classe A ne pourra appeler aucune fonction de B
chrisbk 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]

wpk 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
deathsharp design, c vrai que...

 

[edtdd]--Message édité par deathsharp--[/edtdd]

youdontcare 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();
Alload 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?

Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR