bonjour, je n'arrive pas à résoudre une erreur concernant un thread, j'ai une erreur de compilation qui concerne le constructeur de ma classe, et je ne voit pas le rapport entre le constructeur de la classe et le thread. J'aimerais qu'on m'explique pourquoi j'ai cette erreur de compilation.

voici le code de ma classe :
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
37
38
39
40
41
42
43
44
45
 
#include "Interpretor.h"
#include "Control.h"
 
using namespace std;
 
 
Control :: Control(Chlist * clist)
{
	this->clist = clist;
	cout << "Création de l'objet Thread "<< endl;
	Start();
}
 
 
Control :: ~Control(void)
{
 
}
 
void Control::Start(void)
{
        cout << "Démarrage du thread"<<": debut.\n";
        pthread_create(thread,NULL,&Control::Run,(void *)&clist);
        cout << "Démarrage du thread"<< ": fait.\n";
} 
 
void Control::Join(void)
{
        pthread_join(*thread,NULL);
}
 
void * Control::Run(void * clist)
{
       int i=0;
       Chlist *m_ctrl= (Chlist*)clist;
       m_ctrl->printAll();
       while(1)
       {
              i++;
              cout << " execution n°" << i << endl;
              sleep(1);
       }
       return NULL;
}
voici le point h:
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
37
38
39
40
41
42
43
44
45
46
 
#ifndef __CONTROL_H__
#define __CONTROL_H__
 
#include <iostream>
#include <string>
#include <sstream>
#include <vector>
 
extern "C"
{
	#include <unistd.h>
	#include <stdio.h>
	#include <stdlib.h>
	#include <sys/socket.h>
	#include <sys/types.h>
	#include <sys/stat.h>
        #include <fcntl.h>
        #include <dirent.h>
        #include <pthread.h>
}
#include <pthread.h>
#ifndef BUFFER_SIZE
#define BUFFER_SIZE 1024
#endif
 
using namespace std;
 
 
class Control
{
	public:
	   Control (Chlist * clist);
	   ~Control (void);
	   void Start(void);
	   void Join(void);
	   static void *Run(void * clist);
 
    private:
	  pthread_t * thread;
	  pthread_attr_t * attr;
	  Chlist * clist;
 
};
 
#endif
voici mon erreur de compilation :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
cc1plus: warnings being treated as errors
Control.cpp: In constructor ‘Control::Control(Chlist*)’:
Control.cpp:7: error: declaration of ‘clist’ shadows a member of 'this'
make: *** [Control.o] Erreur 1
Merci de votre compréhension.