Ne cesito ayuda con un programa que trata de relizar una clase pila con una serie de metodos,pero dentro del main tengo el sgte problema.La linea donde me da el error esta en azul y subrayada.Gracias por todo.
#pragma hdrstop
#include <condefs.h>
//---------------------------------------------------------------------------
#pragma argsused
#include <stdio.h>
#include <string.h>
#include <iostream.h>
struct Tdato{
int dato;
Tdato *sig;
};
class Pila{
Tdato *origen;
Tdato *cima;
int nelementos; void EliminarUltimo(void){
Tdato *actual;
actual = origen;
if (cima != origen){
while (actual->sig != cima){
actual = actual->sig;
}
actual->sig = NULL;
cima = actual;
}
else{
cima = NULL;
origen = NULL;
}
nelementos--;
}
int NumeroElementos (void){
return nelementos;
}
public:
void Insertar(int valor){
Tdato *nuevo;
nuevo->dato = valor;
nuevo->sig = NULL;
cima->sig = nuevo;
cima = nuevo;
}
Tdato* Extraer (void){
Tdato *actual = origen;
Tdato *extraido;
while (actual->sig != cima){
actual = actual->sig;
}
extraido = actual->sig;
actual->sig = NULL;
cima = actual;
return extraido;
}
Tdato* Consultar (void){
return cima;
}
bool EstaVacia (void){
return ((cima = origen) = NULL);
}
bool EliminarElementos (int valor){
Tdato *recorrer;
int cont = 0;
int quedan;
if (origen != NULL){
recorrer = origen;
cont = 1;
while (recorrer != cima){
recorrer = recorrer->sig;
cont++;
}
}
if (cont < valor) return false;
else{
if (cont == valor){
origen = NULL;
cima = NULL;
}
else{
quedan = cont - valor;
recorrer = origen;
quedan--;
while (quedan != 0) {
recorrer = recorrer->sig;
quedan--;
}
cima = recorrer;
}
return true;
}
}
int Vaciar (void){
Tdato *vaciado;
int cont = 0;
if (origen != NULL){
vaciado = origen;
while (vaciado->sig != NULL){
vaciado = vaciado->sig;
cont++;
}
}
return cont;
}
};
void main(void){
Pila pila1;
char c;
int num=4;
pila1.Insertar(num);
cout << "pulse una tecla para finalizar: ";
cin >> c,"\n";
}