Hola de nuevo steven, he estado ahi mirando los errores y los he podido corregir hasta que me ha dado 0 errores de compilacion y de linkado pero al ejecutar me sale el pantallazo de windows de enviar errores o no.... no tiene muy buena pinta 
<br><br><div><span class="gmail_quote">El día 13/03/07, <b class="gmail_sendername">tikitita</b> <<a href="mailto:guanxita@gmail.com">guanxita@gmail.com</a>> escribió:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
La verdad es que no, te comento que hice algunos cambios, el problema es que tb uso una cola, una clase fichero, una lista dinamica y un gestor, y el problema viene cuando desde gestor le digo a la pila que quiero una para las variables y otra para los operadores. Bien pues al hacer el cambio que tu me has dicho de meter el .h en el .cpp me ha salido otro error en una de las funciones, que corregi y misteriosamente me salieron 0 errores, pero al ejecutar peto... ohhhh , asi que opte por meter las variables de las pilas en el main y me saltaron varios errores.... 
<br><br>bueno  te adjunto todo x si tu ves algo...<br><br> error C2065: 'operandos' : undeclared identifier<br>gestor.cpp(62) : error C2228: left of '.mostrar' must have class/struct/union type<br>gestor.cpp

(63) : error C2228: left of '.extraer' must have class/struct/union type<br>gestor.cpp(65) : error C2228: left of '.extraer' must have class/struct/union type<br>gestor.cpp(67) : error C2065: 'operador' : undeclared identifier
<br>estor.cpp(85) : error C2228: left of '.insertar' must have class/struct/union type<br><br><br>****gestos.cpp*******<br>#include "cola.h"<br>#include "fichero.h"<br>#include "lista.h"
<br>#include "pila.cpp"<br>#include <cstdlib><br>#include <string><br>using namespace std;<br><br><br><br><br><br>cola buffer2;<br>string V=NULL;//string donde vamos a guardar las variables<br>string N=NULL;
<br>lista variables;<br><br>//Vamos a diferenciar cuando es variable y cuando es valor<br>//true -> variable, false ->valor<br><br>bool reconocer (char palabra) {<br><br>    string aux= "0123456789.";<br>
    char* aux2;
<br>    aux2= (char*)memchr(aux.c_str(),palabra,11); <br><br>    if (aux2==NULL){<br><br>        return true;//variable<br><br>    }else{<br><br>        return false;//valor<br><br>    }<br><br>}<br><br>bool reconocerop (char operador) {
<br><br>    string aux= "+-/*^()";<br>    char* aux2;<br>    aux2= (char*)memchr(aux.c_str(),operador,7); <br><br>    if (aux2==NULL){<br><br>        return true;//no operador<br><br>    }else{<br><br>        return false;//operador
<br><br>    }<br><br>}<br><br><br>void operacion (){<br><br>    float A;<br>    float B;<br>    A=operandos.mostrar();<br>    operandos.extraer();<br>    B=operandos.mostrar();<br>    operandos.extraer();<br>    char op;
<br>
    op=operador.mostrar();<br>    operador.extraer();<br>    switch (op) {<br><br>    case '+': operandos.insertar(A+B);<br>        break;<br>    case'-': operandos.insertar(A-B);<br>        break;<br>    case'/': if(B!=0){
<br>             operandos.insertar(A/B);<br>             }<br>        break;<br>    case'*': operandos.insertar(A*B);<br>        break;<br>    case '^': float aux=1;<br>        for (int i=1;i<=B; i++){
<br>                aux=aux*A;<br>        }<br>            operandos.insertar(aux);<br>        break;<br>    }<br>}<br><br>bool precedencia(char op1, char op2) {<br>    <br>    if ((op1=='(')&&(op1==')')){
<br>        return true;<br>    }else{<br>        if((op1=='^')&&((op2=='('))||(op2==')')){<br>            return false;<br>        }else{<br>            if(((op1=='*')||(op1=='/'))&&(((op2=='(')||(op2==')')||(op2=='^')))){
<br>                return false;<br>            }else{<br>                return false;<br>            }<br>        }<br>    }<br>    return true;<br>}<br><br><br><br><br><br>void calcularexpresion (char numeritos) {<br>

<br>    if (N!=""){<br>        operandos.insertar(variables.buscar(N.c_str()));//insertamos en pila de operadores<br>    }<br>    if (buffer2.mostrar()=='('){<br>        operador.insertar(buffer2.mostrar

());<br>    }<br>    if (buffer2.mostrar()==')'){<br><br>        while (operador.mostrar()=='('){<br>            operacion();<br>        }<br>        operador.extraer();<br>    }<br><br><br>    if (!reconocerop(
buffer2.mostrar())){<br>        if((operador.esvacia())&&(buffer2.mostrar()=='(')){<br>            operador.insertar(buffer2.mostrar());<br>        }<br><br>        if(precedencia(buffer2.mostrar(),operador.mostrar

())){<br>            operacion();<br>            operador.insertar(buffer2.mostrar());<br>        }else{<br>            operador.insertar(buffer2.mostrar());<br>        }<br>    }<br><br><br><br><br><br><br>}<br><br><br>
<br>
void main(){<br><br>//Declaracion de variables<br><br><br>pila<char> operador;// en caso de templates meter <int><br>pila<int> operandos;//en caso de templates meter <char><br><br>string f;<br><br>

<br><br>cout<<"Introduzca el nombre del fichero"<<endl;<br>cin>>f;<br><br>fichero texto(f);//ruta donde estara el fichero que vamos a leer<br><br>buffer2=texto.guardarbuffer();<br><br><br><br>
bool cambio=true;
<br>bool expresion=false;<br><br>while (!texto.fin()){// mientras el fichero no llegue a su fin<br>    while (buffer2.size()!=0){// y el buffer no este vacio<br><br>    <br>        if (reconocer(buffer2.mostrar())){<br><br>

            if (reconocerop(buffer2.mostrar())){<br><br>                if (cambio){<br>                    V+=buffer2.mostrar();<br>                    buffer2.extraer();<br>                }else{<br>                    if (N==""){
<br>                        calcularexpresion(buffer2.mostrar());<br>                        buffer2.extraer();<br>                        N="";<br>                    }else{<br>                        variables.insertar

(V, atof(N.c_str()));<br>                        cambio=true;<br>                        V=buffer2.mostrar();<br>                        buffer2.extraer();<br>                        N="";<br>                    }
<br>                }<br>                <br>            }else{<br>                calcularexpresion(buffer2.mostrar());<br>                buffer2.extraer();<br>            }<br>                <br>            }else{<br>

                while (!reconocer(buffer2.mostrar())){<br>                N+=buffer2.mostrar();<br>                buffer2.extraer();<br>                cambio=false;<br>                }<br>                if (V==""){
<br>                    operandos.insertar(atof(N.c_str()));//insertamos numero en pila de operandos<br>                    V="";<br>                    N="";<br>                }<br><br>            }
<br>
        }<br><br>        buffer2=texto.guardarbuffer();<br><br>    }<br><br><br>cout<<operandos.mostrar();<br><br>}<br><br><div><span class="q"><span class="gmail_quote">El día 13/03/07, <b class="gmail_sendername">
Steven Davidson</b>
 <<a href="mailto:steven@conclase.net" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">steven@conclase.net</a>> escribió:</span></span><div><span class="e" id="q_1114d2ce3a4bde4a_2"><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Hola Tikitita,
<br><br>El pasado 2007-03-13 20:53:15, tikitita escribió:<br><br>t> Nada Steve, no hay manera,,, no le gusta a la pila, dice que nanai.... :( lo<br>t> hice tal como tu dices pero hay algo que no le mola...<br><br>Me parece raro, porque no he visto nada problemático con tu código. De hecho, lo acabo de usar en un programa sencillo, y no he tenido problema alguno. Por lo tanto, me hace sospechar que el problema esté en cómo usas la plantilla 'pila'. Por ejemplo, escribí lo siguiente:
<br><br>using namespace std;<br><br>int main()<br>{<br>  pila<int> pi;<br>  pi.insertar( 10 );<br>  pi.mostrar();<br><br>  cin.get();<br>  return 0;<br>}<br><br>Por si acaso, te comento que no agregué el fichero de "pila" en el proyecto. Usando Dev-C++, éste intentó enlazar "
pila.o" al programa, el cual obviamente no va a existir.<br><br><br>Espero que algo de esto te ayude.<br><br>Steven<br>_______________________________________________<br>Lista de correo Cconclase <a href="mailto:Cconclase@listas.conclase.net" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">

Cconclase@listas.conclase.net</a><br><a href="http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
</a><br>Bajas: <a href="http://listas.conclase.net/index.php?gid=2&mnu=FAQ" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">
http://listas.conclase.net/index.php?gid=2&mnu=FAQ</a><br></blockquote></span></div></div><br>
</blockquote></div><br>