Hello,

J'ai un petit problème avec un booléen récalcitrant.
Voici la classe en question :

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
21
22
23
24
25
26
27
28
template <typename T>
    class GraphicObject : public System::Linkable<T>
    {
 
    public :
 
        GraphicObject( void );
        GraphicObject( Layer<T> & );
        ~GraphicObject( void );
 
        // -----------
 
        inline bool IsVisible( void ) const {
            return my_visibility;           }
 
        // -----------
 
        void Hide( bool = true );
        void Show( bool = true );
        void SetLayer( Layer<T> &, bool show = true );
 
        // -----------
 
    private :
 
        Layer<T> * my_layer;
        bool my_visibility;
    };
Et le code des constructeurs dans le fichier "inline".

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
template <typename T>
    GraphicObject<T>::GraphicObject( void )
        : System::Linkable<T>(), my_layer(0), my_visibility(false)
    { 
 
    }
 
    template <typename T>
    GraphicObject<T>::GraphicObject( Layer<T> &layer )
        : System::Linkable<T>(), my_layer(&layer), my_visibility(true)
    {
        my_layer->push_back( this );
    }
Quoi qu'il arrive le booléen "my_visibility" est toujours égal à true.

J'ai même essayé de le définir en dehors de la liste d'initialisation, ça ne change rien.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
template <typename T>
    GraphicObject<T>::GraphicObject( void )
        : System::Linkable<T>(), my_layer(0)
    { 
        my_visibility = false; // ça ne change rien
    }
Est-ce déjà arrivé à quelqu'un ?

J'utilise le compilateur Visual C++ 2008 (Express Edition).

Si quelqu'un a une idée, merci