Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - amchacon

#641
CitarThis effectively increases the container size by one, which causes an automatic reallocation of the allocated storage space if -and only if- the new vector size surpasses the current vector capacity.
Esto no te influye, el recolocamiento es completamente transparente.

El problema esque estás creando copiando los objetos cada vez que haces push_back, por eso al hacer esto:

Código (cpp) [Seleccionar]
delete c2;
delete c3;


No tiene ningún efecto, tienes que usar punteros para apuntar a estos objetos:

Código (cpp) [Seleccionar]
vector<Child*> children;
#642
Miky, te has liado con las llaves  :silbar:
#643
Detach no sirve para eso  :silbar:

Cuando finaliza el programa, se cierra igualmente.
#644
Programación C/C++ / Re: Una pequeña duda :S
15 Julio 2013, 06:26 AM
Cita de: cracksergio en 15 Julio 2013, 06:11 AM
Disculpa, pero no te entiendo. A qué te refieres con módulos?
Creo que se refiere al número de cpp en su proyecto.

En principio, cuantos más mejor (pero sin abusar, no vayas a poner una función por cpp xD).
#645
Cita de: ivancea96 en 12 Julio 2013, 15:47 PM
mm Danyfirex, buena idea jaja.

Gracias Eferion. Pensaba que sería un poco a más alto nivel el operator +.

¿Y el operator *? ¿Es a bajo nivel, o un conjunto de operators +?
La multriplicación puede implementatse vía hardware, la unica que no se puede implementar es la división (y aun asi, creo que la cpu puede hacerla internamente vía software interno).
#646
Krono, tu código no tiene ningun sentido (creas un objeto en la pila, despues coges un puntero de la funcion crear_cpu (¡Memory leak!)).

El error del codigo principal, es porque cpu también tiene sus punteros. Tienes que borrar esos punteros antes de borrar la cpu.
#647
Cita de: eferion en 11 Julio 2013, 08:29 AMLo más normal sería añadir un 4º parámetro a la función para elegir el camino... un int que haga las veces de booleano, por ejemplo.

Perfecto, simplemente he pasado un valor "nulo" en el caso 1 y de esa forma los ifs no se cumplen:

Código (cpp) [Seleccionar]
HILO(Desplazamiento,parametro)
{
    Datos* param = (Datos*) parametro;

    switch (param->Orientacion)
    {
    case ARRIBA:
        Transicion(param,0,-1); // Transicion, desplazamiento X e desplazamiento Y negativo
        break;
    case ABAJO:
        Transicion(param,0,1); // Transicion, desplazamiento X e desplazamiento Y positivo
        break;
    case IZQUIERDA:
        Transicion(param,-1,0); // Etc
        break;
    case DERECHA:
        Transicion(param,1,0);
        break;

    }

    delete param;
}

void Transicion(Datos* param,short incrx,short incry)
{

    for (short ini = 1; ini < 21; ini++)
    {
            // Blablablabla...

            if (param->Valor == 1)
                circlefill(param->Lienzo,param->X*20+10,param->Y*20+10,5,pallete_color[14]);

            if (param->Valor == 2)
                circlefill(param->Lienzo,param->X*20+10,param->Y*20+10,7,pallete_color[12]);

            // Blablablabla...
    }
}
#648
Programación C/C++ / Re: [Duda] Funciones
11 Julio 2013, 10:20 AM
Cita de: eferion en 11 Julio 2013, 08:20 AMLas funciones no tienen operadores de indirección.
Las funciones no, pero un puntero a una clase sí  ;)
#649
Tengo un problema que me frie la sangre.

Tengo esto en un archivo:

Código (cpp) [Seleccionar]

HILO(DesplazamientoPersonaje,parametro)
{
   Datos* param = (Datos*) parametro;

   switch (param->Orientacion)
   {
   case ARRIBA:
       Transicion(param,0,-1); // Transicion, desplazamiento X e desplazamiento Y negativo
       break;
   case ABAJO:
       Transicion(param,0,1); // Transicion, desplazamiento X e desplazamiento Y positivo
       break;
   case IZQUIERDA:
       Transicion(param,-1,0); // Etc
       break;
   case DERECHA:
       Transicion(param,1,0);
       break;

   }

   delete param;
}

void Transicion(Datos* param,short incrx,short incry)
{
   for (short ini = 1; ini < 21; ini++)
   {
           //Blablablabla...
   }
   
}


Y en otro archivo tengo:

Código (cpp) [Seleccionar]
HILO(Desplazamiento,parametro)
{
   Datos* param = (Datos*) parametro;

   switch (param->Orientacion)
   {
   case ARRIBA:
       Transicion2(param,0,-1); // Transicion, desplazamiento X e desplazamiento Y negativo
       break;
   case ABAJO:
       Transicion2(param,0,1); // Transicion, desplazamiento X e desplazamiento Y positivo
       break;
   case IZQUIERDA:
       Transicion2(param,-1,0); // Etc
       break;
   case DERECHA:
       Transicion2(param,1,0);
       break;

   }

   delete param;
}

void Transicion2(Datos* param,short incrx,short incry)
{
   
   for (short ini = 1; ini < 21; ini++)
   {
           // blablabla

           if (param->Valor == 1)
               circlefill(param->Lienzo,param->X*20+10,param->Y*20+10,5,pallete_color[14]);

           if (param->Valor == 2)
               circlefill(param->Lienzo,param->X*20+10,param->Y*20+10,7,pallete_color[12]);

           // blablablabla

       
   }
}


Son muy parecidas, las unicas diferencia son los dos ifs de la función for. Hay alguna forma (sencilla) de juntar las dos funciones pero conservando los dos ifs?  :-\

#650
Cita de: peterfly en 10 Julio 2013, 23:54 PMpor cierto lo de NxN es solo para letras
Lo de NxN es solo si tienes 2 posibilidades que se pueden repetir (si no se pueden repetir serían Nx(N-1)).