[C con Clase] Otra duda

Miguel Alejandro Jimenez Ramirez cerberbero en gmail.com
Jue Mar 13 09:19:13 CET 2014


1.Finalmente lo que creo que deberia hacer es crar un destructor en donde
se libera la memoria con un dlete de todos los miembros del vector.
 2. Como segunda pregunta teng un pedazo de codigo que no entiendo muy bien
ya que se utiliza la palabra reservada auto , la busque en el curso de la
pagina de conclase.net pero la verdad creoq ue la definicon es muy poca
para lo que se esta haciendo en este codigo , podrias explicarme como
funciona el uso de esta palabra en el siguiente fragmento de codigo:

 Enum ColorCsilla{VACIO, CIRCULO,CRUZ};
typedef < array<array<ColorCasilla , 3> , 3> Celda ;

class juego{

public:

void inisalizar(){

for (auto& linea :celda){

for(auto& kase : celda){

kase = VACIO;
}
}
}
private:
Celda celda;
}


El tipo enum , lo entiendo bien , paro la parte del typedef es un poco
confusa ,en que capitulo del curso podria conseguir informacion sobre este
tipo de usos del typedrf.

Gracias quedo pendiente.


2014-03-12 22:25 GMT+01:00 Salvador Pozo <salvador en conclase.net>:

> El pasado 2014-03-12 20:55:39, Miguel Alejandro jimenez escribió:
>
> MAj> Pues se me ha generado otra duda pero es sobre vectores , teniendo la
> MAj> siguiente definicion de una funcion :
> MAj> void Bibliotheque::stocker(Oeuvre & test, int n=1 )  {
> MAj>        while (n >=1){
> MAj>       list.push_back(new Exemplaire(test));
> MAj>       cout<<"PRUEBA"<<endl;
> MAj>       n--;
> MAj>       }
> MAj> }
> MAj> En esta funcion no se como liberar los espacios de memoria , es decir
> como
> MAj> utilizo la palabra reservada delete , para liberar la memoria , o
> MAj> sencillamente en este caso no es necesario , por que va rellenando el
> MAj> vector con los parametros dados?
>
> Hola:
>
> Entiendo que la memoria que quieres liberar es la apuntada por test.
>
> Yo soy partidario de que, salvo que el problema obligue a actuar de otro
> modo, la memoria se libere en el mismo nivel que se obtiene.
>
> Es decir, si la memoria para test se obtiene en el nivel en que se invoca
> al método "stocker", se libere en ese mismo nivel. O sea, cuando se retorne
> de la función.
>
> A la hora de depurar o analizar un programa, es más sencillo si las
> reservas y liberaciones de memoria se hacen en la misma función.
>
> En este caso sí es necesario liberar la memoria asignada a test, ya que en
> el vector almacenas una copia de test, no el propio test. Bueno, al menos
> creo que deberías almacenar una copia. Si "new Exemplaire(test)" no crea
> una copia de test, podrías tener algunos problemas de incongruencia.
>
> Por ejemplo, si haces uso de test después del retorno, o si la liberas, o
> si se libera automáticamente, el contenido del vector podría modificarse o
> corromperse sin una causa evidente.
>
> Desconozco el mecaniemo exacto de este procedimiento, así que no estoy muy
> seguro de esto.
>
> Hasta pronto.
>
> --
> Salvador Pozo (Administrador)
> mailto:salvador en conclase.net
> Blog con Clase: http://blogconclase.wordpress.com
> Con Clase: http://conclase.net
> _______________________________________________
> Lista de correo Cconclase Cconclase en listas.conclase.net
> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
>



-- 
MIGUEL ALEJANDRO JIMENEZ R.
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20140313/fed4a66d/attachment.html>


Más información sobre la lista de distribución Cconclase