Ver Mensaje Individual
  #1 (permalink)  
Antiguo 08/06/2015, 13:08
Avatar de GumiCat
GumiCat
 
Fecha de Ingreso: mayo-2014
Ubicación: Argentina
Mensajes: 16
Antigüedad: 10 años, 7 meses
Puntos: 0
Sonrisa Plantilla no me reconoce la funcion miembro

Hola a todos, tengo un problema y es que el compilador no me reconoce la funcion miembro de mi plantilla de clase.
Me sale el siguiente error:

request for member `tamanio' in `pila1', which is of non-class type `Pila<int, 5> ()()'

La verdad no lo entiendo.
Mis códigos van así:

El encabezado de "pila.h"
Código C++:
Ver original
  1. #ifndef PILA_H
  2. #define PILA_H
  3.  
  4. template <typename T, int TAM>
  5. class Pila{
  6.    
  7. public:
  8.     Pila();
  9.    
  10.     int insertar(T );
  11.     int sacar(T *);
  12.     int existeElemento(T );
  13.     int estaLlena();
  14.     int estaVacia();
  15.     int tamanio();
  16.    
  17.     T operator=(T &);
  18.     T operator+(T &);
  19.     T operator+=(T &);
  20.    
  21. private:
  22.     int tam_pila;
  23.     T arreglo_pila[TAM];
  24.    
  25. };
  26.  
  27. #endif

Las definiciones en "pila.c"
Código C++:
Ver original
  1. #include <iostream>
  2. #include "pila.h"
  3.  
  4. template <typename T, int TAM>
  5. Pila<T, TAM>::Pila(){
  6.    
  7.     tam_pila = 0;
  8.     arreglo_pila = NULL;   
  9. }
  10.  
  11. template <typename T, int TAM>
  12. int Pila<T, TAM>::tamanio(){
  13.     return tam_pila;
  14. }

y la funcion main()

Código C++:
Ver original
  1. #include <iostream>
  2. #include "pila.h"
  3.  
  4. using std::cout;
  5. using std::endl;
  6.  
  7. int main()
  8. {
  9.    
  10.     Pila<int, 5> pila_enteros;
  11.    
  12.     cout << "El tamanio es: " << pila_enteros.tamanio() << "\n";
  13.    
  14.    
  15.    
  16.     return 0;
  17. }

Espero me puedan ayudar a solucionar mi problema
Gracias!

Última edición por GumiCat; 08/06/2015 a las 13:44