affecter un iterateur avec un pointeur
Bonjour,:D
J'essaie de corriger un programme de traduction. J'ai beaucoup de modifications de pointeurs qui passent d'un type à l'autre.
Pour moi ca me semble plus sur de profiter des itérateur pour faire les transtypage au niveau élémentaire.:?
Mais mon compilateur me refuse les affectation de l'iterateur avec le pointeur
Code:
1 2 3 4
| std::list<CElementDescription*>::iterator itTmpSrc;
CElementDescription* pTmpSrc;
pTmpSrc = (CElementDescription*)&itHidSrc;
itTmpSrc = pTmpSrc; |
ainsi le transtypage du pointeur pTmpSrc en ItTmpSrc est refusé
Je serais heureux d'voir une explication sur ce qu'on peut faire. J'ai essayer de caster basiquement ou dynamiquement...
Traitement des iterateurs
Bonjour,:D
Donc j'ai réorienté mon action. J'ai supprimé la transmission de iterateurs dans les paramètres des fonctions appellées, et j'ai affecté des pointeurs dans l'appel de ces fonctions. Ca marche très bien car dans la fonction appelé, le pointeur est traité comme l'itérateur
le code devient pour l'appel:
Code:
1 2 3 4 5 6
| CElementDescription* pTmpSrc;
CElementDescription* pTmpTrt;
pTmpSrc = (CElementDescription*)&itHidSrc;
pTmpTrt = (CElementDescription*)&itHidTrt;
// [Fill the aligned cells with the source and target linked segments]
FillAlignedSegmentGrid( pTmpSrc, pTmpTrt, pLinkDescription, iRow); |
et dans la fonction appelée
Code:
1 2 3 4
| void FillAlignedSegmentGrid( CElementDescription* itSrcDesc,
CElementDescription* itTgtDesc,
CLinkDescription* pLinkDescription,
int &iRow) |
alors que les deux premier paramètre étaient préalablement défini comme iterateur sur une liste. Fonctionnellement l'iteratur sur une liste c'est un pointeur sur l'élément de la liste.
Merci de votre réponse:D, et à +