liste d'initialisation booléen toujours true
Hello,
J'ai un petit problème avec un booléen récalcitrant.
Voici la classe en question :
Code:
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:
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:
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 :)