summaryrefslogtreecommitdiffstats
path: root/src/CBot/idees.txt
blob: 715378953587ea59dd193f0d11fccec741945d2e (plain)
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
pour la gestion des instances d'une classe.

l'objet cr�� actuellement avec CBotVar::Create(nom, pClasse)
est a conserver tel quel, en dehors des vars sur la pile

il faut un autre type de variable pour garder les pointeurs
CBotTypPtClass par exemple

L'instance de la classe doit avoir un compteur d'utilisation
qui est le nombre d'objet de classe CBotTypPtClass qui y r�f�rent.
Le compteur est d�cr�ment� lorsque le pointeur est d�truit,
l'objet supprim� lorsqu'il n'y a plus de pointeurs.


Dans le cas des robots, Daniel cr�e une instance de sa classe "Object"
et peut retourner des pointeurs � cette instance par des routines genre FindRobot()

Object FindRobot(int n) { }

pResult dans ce cas est un pointeur CBotTypPtClass
lorsqu'il a trouv� le robot concern�, il lui faudra faire

pResult->SetPointeur(InstanceDeLaClassObject);

cette op�ration incr�mente le compteur des r�f�rences

--

lorsque le robot est d�truit, l'instance de la classe Object correspondant
est d�truit �galement.
s'il reste des pointeurs � cet objet, et l'on risque la plant�

solution 1:
	garder non pas le pointeur � l'objet directement, mais
	un index dans une tables de pointeurs

solution 2:
	ne pas d�truire l'objet im�diatement lorsqu'il reste des pointeurs
	mais le marqu� comme virtuellement d�truit