Ver Mensaje Individual
  #1 (permalink)  
Antiguo 03/10/2014, 14:55
Avatar de Andrek
Andrek
 
Fecha de Ingreso: enero-2012
Mensajes: 14
Antigüedad: 12 años, 9 meses
Puntos: 1
Como eliminar una clase de una array dinamica

Hola chicos soy nuevo en C++ y tengo un problema con una array dinamica que hice, lo que hice fue crear una clase que almacene la array dinamica y crear funciones para modificar esa array a mi gusto (agregar, ver, eliminar, etc.) y la función eliminar no sirve me ayudan por favor?

Código:
#include<iostream>

using namespace std;

class A
{
      int n;
      public:
      A() { n = 0; }
      int GetN() { return n; }
      int SetN(int new_n) { n = new_n; }
};

class Vector_A
{
      A** array;
      int size;
      public:
      Vector_A() { array = new A*; size = 0; }
      int Size() { return size; }
      void agregar(A *a)
      {
           size++;
           array[size] = a;
      }
      void eliminar(int index)
      {
           if (index > 0 && index <= size)
           {
                for(int i = index; i <= size; i++)
                {
                        if (i + 1 <= size)
                        {
                             array[i] = array[i + 1];
                             //array[index + 1] = eliminated;
                        } else {
                               //array[index] = eliminated;
                        }
                }
                size--;
           }
      }
      A* ver(int index)
      {
              //if (index > 0 && index <= size) { return array[index]; }
              return array[index];
      }
      void liberar()
      {
           delete[] array;
      }
};

void asignar(Vector_A *vector_a)
{
     for(int i = 1; i <= vector_a->Size(); i++)
     {
             vector_a->ver(i)->SetN(i * 20);
     }
}

void ver(Vector_A *vector_a)
{
     for(int i = 1; i <= vector_a->Size(); i++)
     {
             vector_a->ver(i)->SetN(i * 20);
             cout << i << ": " << vector_a->ver(i)->GetN() << endl;
     }
}

int main()
{
    Vector_A vector_a;
    A a, b, c;
    vector_a.agregar(&a);
    vector_a.agregar(&b);
    vector_a.agregar(&c);
    asignar(&vector_a);
    ver(&vector_a);
    vector_a.eliminar(1);
    ver(&vector_a);
    cout << "3: " << vector_a.ver(3)->GetN() << endl;
    vector_a.liberar();
    system("PAUSE");
    return 0;
}