[C con Clase] Otra duda

Miguel Alejandro Jimenez Ramirez cerberbero en gmail.com
Jue Mar 13 10:21:45 CET 2014


De paso aprovecho y pregunto algo , si yo tengo el siguiente codigo

class A{
public:
string getA() const {return a;}
void ver(){cout<<"la palabra es : "<<getA()<endl;}

private:
string a;
};


class B{

public:

void almacenar(A test,int n){
while(n=!1){
A *test=new A;
v.push_back(*list);*
delete test;
                 }
void imprimir(){
// acceder al metodo ver de la clase A
for(int p=1; p=list.size;p++){
list[p]->ver();
                                         }
}
private:
vector<A*> list;
}
*********************************************
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




2014-03-13 9:19 GMT+01:00 Miguel Alejandro Jimenez Ramirez <
cerberbero en gmail.com>:

> 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.
>



-- 
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/6fa9e80f/attachment.html>


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