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;
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;
}
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.
Je fais comme ça :
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);
    }
}
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 ?