Bonjour,
J'aimerais utiliser dans une méthode une variable, de type booléen par exemple, qui :
- ne soit pas détruite à la fin de cette méthode (pas d'instanciation statique)
- ne soit pas accessible depuis l'extérieur de cette méthode (ni une variable globale, ni une donnée membre)
- ne soit pas partagée entre plusieurs instances de la classe (donc non static).
Edit :
J'ai pensé à l'instanciation dynamique mais je ne sais pas comment je pourrai libérer la mémoire puisque cette variable n'est pas censée être accessible dans le destructeur.
N'importe quoi, je perdrai le pointeur dès la sortie de la méthode.
Avez vous des conseils ?
Merci d'avance !
Edit :
Résolu : C'est impossible.
Le mieux est de se servir des données membres.
Le seul "inconvénient" est que la variable est accessible depuis l'instance, et non pas uniquement à la méthode.
Ce qui donne :
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
29
30
31
32
33
34
35
36 #include <iostream> using namespace std; class A { bool aFaire; public: A() : aFaire(true) {} void m() { if(aFaire) { aFaire = false; cout << "\tTache 1." << endl; } cout << "\tTache 2." << endl; } }; int main() { A a1, a2; cout << "a1.m() (x1):" << endl; a1.m(); cout << "a1.m() (x2):" << endl; a1.m(); cout << endl; cout << "a2.m() (x1):" << endl; a2.m(); cout << "a2.m() (x2):" << endl; a2.m(); return 0; }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 a1.m() (x1): Tache 1. Tache 2. a1.m() (x2): Tache 2. a2.m() (x1): Tache 1. Tache 2. a2.m() (x2): Tache 2.
Partager