<div dir="ltr"><div><div><div><div><div>Volviendo a esta funcion:<br><br> void Bibliotheque::stocker(Oeuvre & test, int n=1 )  {<br>
       while (n >=1){<br>
      list.push_back(new Exemplaire(test));<br>
      cout<<"PRUEBA"<<endl;<br>
       n--;<br>
      }<br><br><br></div>La verdad no se como liberar estos espacios de memoria , es verdad que lo ideal seria liberarlos en la misma funcion stocker(); , pero no puedo , ya que despues voy a utilizar el vector en otras funciones , <br>
<br></div>Entoces en la clase Bibliotheque , cree un destructor que seria algo como esto:<br><br>Bibliotheque::~Bibliotheque(){<br>      <br>       for(unsigned int p=0;p<list.size();p++)<br>        list.push_back(delete ); <br>
     <br>                       }<br><br></div>pero no funciona el compilador me retorna un error :<br><br>expected primary-expression before ‘)’ token<br><br></div>es un error de sintaxis , pero no sabria como borrar la lista de apuntadores , en este destructor , sera que me podrian ayudar un poco en esta parte ?<br>
</div>Gracias<br></div><div class="gmail_extra"><br><br><div class="gmail_quote">2014-03-13 11:27 GMT+01:00 Miguel Alejandro Jimenez Ramirez <span dir="ltr"><<a href="mailto:cerberbero@gmail.com" target="_blank">cerberbero@gmail.com</a>></span>:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div>Bueno finalmente hice algo como esto en la funcion para leer los datos:<br><br></div>for(auto &p : list){<br>
</div>p->ver();<br><div>                       }<br><br></div><div>y me funciono muy bien , pero comopodria recorrer un vector de apuntadores sin necesidad de utilizar el auto? , <br>
ademas no entiendo muy bien el funcionamiento de este ciclo , que do a la espera de sus comentrios y sobre todo tambien para mi pregunta de los type def<array<array,3...<br></div></div><div class="gmail_extra"><br>
<br>
<div class="gmail_quote">2014-03-13 10:21 GMT+01:00 Miguel Alejandro Jimenez Ramirez <span dir="ltr"><<a href="mailto:cerberbero@gmail.com" target="_blank">cerberbero@gmail.com</a>></span>:<div><div class="h5"><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr"><div><div><div>De paso aprovecho y pregunto algo , si yo tengo el siguiente codigo<br><br></div>class A{<br></div>public:<br></div><div>string getA() const {return a;}<br></div>void ver(){cout<<"la palabra es : "<<getA()<endl;}<br>


<div><div><br>private:<br></div><div>string a;<br></div><div>};<br><br><br></div><div>class B{<br></div><div><br>public:<br><br></div><div>void almacenar(A test,int n){<br></div><div>while(n=!1){<br>A *test=new A;<br>v.push_back(<b>list);</b><br>


</div><div>delete test;<br></div><div>                 }                                         <br></div><div>void imprimir(){<br></div><div>// acceder al metodo ver de la clase A<br></div><div>for(int p=1; p=list.size;p++){<br>


</div><div>list[p]->ver();<br>                                         }<br>}<br>private:<br></div><div>vector<A*> list;<br></div><div>}<br>*********************************************<br></div><div>Bueno mi pregunta es sobre el acceso al metodo ver de la clase A , ya que list es in vector de apuntadores y no he logrado acceder , no se como hacer la sintaxis , podrian colaborarme con esta parte? , gracias quedo atento a todos sus comentarios<br>


<br><br></div></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">2014-03-13 9:19 GMT+01:00 Miguel Alejandro Jimenez Ramirez <span dir="ltr"><<a href="mailto:cerberbero@gmail.com" target="_blank">cerberbero@gmail.com</a>></span>:<div>

<div><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>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.<br>


</div> 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 <a href="http://conclase.net" target="_blank">conclase.net</a> 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:<br>



<br>


        
        
        
        


<p style="margin-bottom:0cm">Enum ColorCsilla{VACIO, CIRCULO,CRUZ};</p>typedef < array<array<ColorCasilla
, 3> , 3> Celda ;
<p style="margin-bottom:0cm">class juego{</p><p style="margin-bottom:0cm">public:</p>
<p style="margin-bottom:0cm">void inisalizar(){
</p><p style="margin-bottom:0cm">for (auto& linea :celda){
</p><p style="margin-bottom:0cm">for(auto& kase : celda){</p>
<p style="margin-bottom:0cm">    kase = VACIO;</p>}<br>}<br>}<br>private:<br>Celda celda;<br>}

<br><div><br><br></div><div>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.<br><br></div><div>Gracias quedo pendiente.<br>



</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">2014-03-12 22:25 GMT+01:00 Salvador Pozo <span dir="ltr"><<a href="mailto:salvador@conclase.net" target="_blank">salvador@conclase.net</a>></span>:<div>


<div><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">El pasado 2014-03-12 20:55:39, Miguel Alejandro jimenez escribió:<br>
<br>
MAj> Pues se me ha generado otra duda pero es sobre vectores , teniendo la<br>
MAj> siguiente definicion de una funcion :<br>
MAj> void Bibliotheque::stocker(Oeuvre & test, int n=1 )  {<br>
MAj>        while (n >=1){<br>
MAj>       list.push_back(new Exemplaire(test));<br>
MAj>       cout<<"PRUEBA"<<endl;<br>
MAj>       n--;<br>
MAj>       }<br>
MAj> }<br>
MAj> En esta funcion no se como liberar los espacios de memoria , es decir como<br>
MAj> utilizo la palabra reservada delete , para liberar la memoria , o<br>
MAj> sencillamente en este caso no es necesario , por que va rellenando el<br>
MAj> vector con los parametros dados?<br>
<br>
Hola:<br>
<br>
Entiendo que la memoria que quieres liberar es la apuntada por test.<br>
<br>
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.<br>
<br>
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.<br>
<br>
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.<br>
<br>
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.<br>




<br>
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.<br>
<br>
Desconozco el mecaniemo exacto de este procedimiento, así que no estoy muy seguro de esto.<br>
<br>
Hasta pronto.<br>
<div><div><br>
--<br>
Salvador Pozo (Administrador)<br>
mailto:<a href="mailto:salvador@conclase.net" target="_blank">salvador@conclase.net</a><br>
Blog con Clase: <a href="http://blogconclase.wordpress.com" target="_blank">http://blogconclase.wordpress.com</a><br>
Con Clase: <a href="http://conclase.net" target="_blank">http://conclase.net</a><br>
_______________________________________________<br>
Lista de correo Cconclase <a href="mailto:Cconclase@listas.conclase.net" target="_blank">Cconclase@listas.conclase.net</a><br>
<a href="http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net" target="_blank">http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net</a><br>
Bajas: <a href="http://listas.conclase.net/index.php?gid=2&mnu=FAQ" target="_blank">http://listas.conclase.net/index.php?gid=2&mnu=FAQ</a><br>
</div></div></blockquote></div></div></div><br><br clear="all"><div><br>-- <br>MIGUEL ALEJANDRO JIMENEZ R.<br>
</div></div>
</blockquote></div></div></div><div><div><br><br clear="all"><br>-- <br>MIGUEL ALEJANDRO JIMENEZ R.<br>
</div></div></div>
</blockquote></div></div></div><div><div class="h5"><br><br clear="all"><br>-- <br>MIGUEL ALEJANDRO JIMENEZ R.<br>
</div></div></div>
</blockquote></div><br><br clear="all"><br>-- <br>MIGUEL ALEJANDRO JIMENEZ R.<br>
</div>