Bonjour,
Je me suis toujours demande (dans un contexte monothread) pourquoi, pour écrire un singleton Widget, on ne fait généralement pas :
ou bien :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 static Widget& instance() { static Widget w; return w; }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 static Widget& instance() { static Widget* w = new Widget(); return *w; }
plutôt qu'utiliser un membre static de la classe Widget :
Ce qui est qd même plus long à écrire ...
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 class Widget { public: ... static Widget& instance() { if (!w) { w = new Widget; } return *w; } ... private: static Widget* w; }; Widget* Widget::w = 0;
Partager