[C con Clase] Fwd: Errores de linkado de pila con templates

tikitita guanxita en gmail.com
Mar Mar 13 18:12:31 CET 2007


---------- Forwarded message ----------
From: tikitita <guanxita en gmail.com>
Date: 13-mar-2007 19:06
Subject: Errores de linkado de pila con templates
To: cconclase en listas.conclase.net

Hola chicos me estoy haciendo una calculadora de notacion infija  en la que
uso, una cola, una lista ordenada y una pila con templates. Al compilarlo
todo no me da ningun error, pero al linkarlo me dan 12 errores de pila...
tipo thiscall pila -> a las llamadas de las pilas... he probado a quitar los
templates pero solo he conseguido que me den mas errores en el main. Os
adjunto el codigo del cpp y del .h a ver si vosotros veis algo que yo no
veo.

**PILA.CPP**

#include "pila.h"





template<class t>
pila<t>::pila(){
    cima=NULL;
}
/*template<class t>
pila<t>::~pila(){
    struct nodolista *aux;
    while (this->cima!=NULL){
        aux=this->cima;
        this->cima=this->cima->sig;
        delete aux;
    }
}*/
/*template<class t>
pila<t>::pila(const pila<t> &p){
    struct nodolista *aux;
    struct nodolista *aux2;
    aux=p.cima;
    while (aux!=NULL){
        aux2=new nodolista;
        aux2->inf=this->cima->inf;
        this->cima=aux2;
        aux=aux->sig;
    }
}*/
template<class t>
void pila<t>::insertar(t n){
    struct nodolista *nuevo=new nodolista;
    nuevo->inf=n;
    nuevo->sig=this->cima;
    this->cima=nuevo;
}
template<class t>
void pila<t>::extraer(){
    struct nodolista *aux;
    aux=this->cima;
    if (aux!=NULL){
        this->cima=this->cima->sig;
        delete[]aux;
    }
}
template<class t>
    bool pila<t>::esvacia(){
        if(this->cima==NULL){
            return true;
        }else{
            return false;

        }
    }
template<class t>
        int pila<t>::mostrar(){
            struct nodolista *aux;
            aux=this->cima;
            while(aux!=NULL){
                cout<<aux->inf<<endl;
                aux=aux->sig;
            }
        }
template<class t>
        pila<t> &pila<t>::operator =(const pila<t>&p){
            struct nodolista *aux;
            if (this->cima!=NULL){
                while(this->cima!=NULL){
                    aux=this->cima;
                    this->cima=this->cima->sig;
                    delete[]aux;
                }
            }
        aux=p.cima;
        while (aux!=NULL){
            struct nodolista *nuevo=new nodolista;
            nuevo->inf=aux->inf;
            nuevo->sig=this->cima;
            this->cima=nuevo;
            aux=aux->sig;
        }
        return *this;
        }
**************************************
**PILA.h**

#ifndef pila_H
#define pila_H
#include<cstdlib>
#include <iostream>
//#include <stdio>

using namespace std;

template <class t>
class pila {
private:
    struct nodolista{
    t inf;


    struct nodolista *sig;
    };
    nodolista* cima;

public:
    pila();
    //pila(const pila &p);
    //~pila();
    void insertar(t n);
    void extraer();
    bool esvacia();
    int mostrar();
    pila& operator= (const pila &p);//para copiar una pila en medio del
codigo//friend: no es parte de la clase pero puedo utilizar los atributos de
ella
};

#endif

****************************
Espero que me podais ayudar, muchas gracias.
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20070313/5e61011b/attachment.html>


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