Bonjour à tous,
J'ai une CList de CLogManager (classe maison) définie comme il suit :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 CList<CLogManager, CLogManager&> m_logs;J'essaie de modifier les deux doubles de chaque élément de la liste par la fonction SetDividers() mais aucune modification n'est prise en compte.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 class CLogManager { public: [...] void SetDividers(double fCrossWebDivider, double fDownWebDivider); [...] private: [...] double m_fDownWebDivider; double m_fCrossWebDivider; }; void CLogManager::SetDividers(double fCrossWebDivider, double fDownWebDivider) { m_fDownWebDivider = fDownWebDivider; m_fCrossWebDivider = fCrossWebDivider; }
Je fais comme ça :
Il semblerait que le problème soit logTmp qui finalement n'est qu'une copie de l'élément de la liste, mais alors, comment récupérer un pointeur sur chaque élément pour pouvoir faire les modifs ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 void CMultipleLogsManager::SetDividers(double fCrossWebDivider, double fDownWebDivider) { POSITION pos = m_logs.GetHeadPosition(); while (pos != NULL) { CLogManager& logTmp = m_logs.GetNext(pos); logTmp.SetDividers(fCrossWebDivider,fDownWebDivider); } }
Partager