Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Plantillas

Estas en el tema de Plantillas en el foro de C/C++ en Foros del Web. Hola como andan amigos! Tenia una duda, mejor dicho un problema respecto a las plantillas "templates" Les dejo adjunto el codigo mas paso a explicar ...
  #1 (permalink)  
Antiguo 24/07/2011, 04:29
 
Fecha de Ingreso: mayo-2009
Mensajes: 2
Antigüedad: 15 años, 5 meses
Puntos: 0
Plantillas

Hola como andan amigos!
Tenia una duda, mejor dicho un problema respecto a las plantillas "templates"
Les dejo adjunto el codigo mas paso a explicar mi problema:

Código:
template<class T> class Vector {
        T *vec;
        int tam;
    public:
        Vector(int);
        ~Vector();
        T& operator[](int);
};

template<class T> Vector<T>::Vector(int n)
{
    vec = new T[n];
    tam = n;
}

template<class T> Vector<T>::~Vector()
{
    delete [] vec;
}

template<class T> T& Vector<T>::operator[](int n)
{
    if(n<tam)
        return vec[n];
    else
        return vec[tam-1];
}
y en el Main:
Código:
int main()
{
    Vector<Cadena> cadenas(10);
    for(int i=0;i<10;i++)
    {
        cout<<"Ingrese cadena: ";
        cin>>cadenas[i];
        cout<<endl;
    }

    cout<<endl<<"Cadenas al reves:"<<endl;

    for(int i=9;i>=0;i--)
        cout<<cadenas[i]<<"  ";


    return 0;
}
No voy a adjuntar en codigo la libreria cadena donde tengo definida la clase cadena, la probe aparte y anda, pero es muy extensa.
Mi problema es que el programa se cuelga, es decir con los tipos standar de datos, int, float, double funciona bien generar vectores de clases, pero con clases creadas por mi nose porque se cuelga, el problema esta al iniciar el programa con el constructor, es evidente que sea un problema de memoria.. como lo podria solucionar??
Desde ya gracias !
  #2 (permalink)  
Antiguo 25/07/2011, 18:07
 
Fecha de Ingreso: febrero-2003
Ubicación: D.F.
Mensajes: 163
Antigüedad: 21 años, 9 meses
Puntos: 22
Respuesta: Plantillas

Si estás manipulando memoria dinámica dentro de tus clases asegurate de tener definido el constructor copia, el operador de asignación y el destructor, si ya lo has hecho revísalos muy bien y depura tu aplicación porque lo más probable es que encuentres el error en alguno de ellos; por otro lado, es difícil poderte ayudar más si no muestras algo del código que puede estar fallando.

Etiquetas: funcion, plantillas, programa
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:45.