Bonjour,

J'ai pu mettre en place l'instance unique d'une classe grâce au système de singleton disponible ici : http://cpp.developpez.com/faq/cpp/?p...LASS_singleton

J'arrive à récupérer mon instance dans toutes mes classes, mais j'aimerais maintenant pouvoir mettre mon instance unique dans une variable d'une de mes classes pour ne pas avoir à récupérer l'instance dans chaque méthode.

Ma classe singleton est la classe de Log. Pour récupérer l'instance unique, je fais :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
Log& log = Log::getInstance();
Dans l'une de mes classes, j'ai déclaré cette variable privée (log):

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
class MaClasse
{
	private:
		MaClasse();
		~MaClasse();
		MaClasse (const MaClasse&);
		MaClasse& operator= (const MaClasse&);
 
 
	public:	
		static MaClasse& getInstance();
		void start();
		void loadConfig();
 
 
	private:
			//Instance
		static MaClasse instance;
 
		static Log& log;
 
};
Et j'ai ajouté dans mon constructeur :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
MaClasse::MaClasse()
{
 
		//Chargement de la configuration
	loadConfig();
 
	loggg = Log::getInstance();
}
Mais j'ai l'erreur suivante :

error: 'Log& Log::operator=(const Log&)' is private
error: within this context
Merci d'avance pour votre aide