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 47 48
| outilDessin * composite::getKObject(int k)
{
int compteur=1;
if(k>=1 && k <= Scene.taille)
{
cellule *ptr = Scene.tete;
while(compteur!=k)
{
ptr = ptr->cellule_suivante;
compteur++;
}
//on obtient une copie de l'objet
outilDessin * objTemp = &(ptr->objet->getCopy()); //le débugueur s'arete avant d'entrer dans la fonction getCopy() !
return (objTemp);
}
}
void composite::RestoreScene(char * nomFichier)
{
//supression d'une eventuelle liste :
Scene.deleteListe();
//ouverture du fichier :
fstream entree(fichier,ios::in);
//on recupere la taille de la liste :
int taille;
entree>>taille;
//on recupere les objets :
int type;
for (int i=1 ; i<=taille ; i++)
{
entree>>type;
switch(type)
{
//ici se situe également une autre erreur puisque les
//données sont perdues lorsqu'on sort de la fonction
case 0 :
{
Point P;
P.ecritureEntree(entree);
addObject(P.getCopy());
}
}
}
} |