[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