SoloCodigo

Programación General => C/C++ => Mensaje iniciado por: saudiaz en Viernes 16 de Abril de 2010, 22:43

Título: Plantillas en C++ ejercicio
Publicado por: saudiaz en Viernes 16 de Abril de 2010, 22:43
Hey ayudenme a que funcione me da un error en el main en la llamada de la funcion espero me ayuden


#include<iostream>
#include<conio.h>
using namespace std;

template <class Tipo>
class CMuestra{
      Tipo Pila;
      int indice;
      int Ncantidad;
      Tipo Valor;
      public:
         CMuestra(int i,int n){
                    indice=i;
                    Ncantidad=n;
                    cout<<"n Cuantos valores desea introducir: ";
                    cin>>Ncantidad;
                    for(int indice=0;i<=Ncantidad;indice++){
                          if(indice==Ncantidad){
                                        cout<<"n Pila llena";
                                        return 0;
                                        }
                          cout<<indice<<". Introduca valor"<<endl;
                          cin>>Valor;
                          Pila[indice]=Valor;
                          }
                   
                    }
         CMuestra(Tipo v, Tipo p){
                    Pila=p;
                    Valor=v;
                    }
       
        void mostrar();
};
        template <class Tipo> void CMuestra<Tipo>::mostrar(){
                 for(int indice=0;indice<=Ncantidad;indice++){
                       
                         
                          return Pila[indice];
                         
                          }
                 }
main()
{
CMuestra<float> muestra01();
muestra01.mostrar();
getch();
}
Título: Re: Plantillas en C++ ejercicio
Publicado por: Epa en Sábado 17 de Abril de 2010, 03:15
La verdad que ese codigo tiene vario errores, tanto sintacticos como conceptuales.

La varaible Pila, la cual definis como Tipo Pila, despues la usas como un array Pila[].
en el constructor aparece la sentencia "return 0", los constructores no devuelven ningun valor.
el bucle en la funcion mostrar no tiene sentido, ya que en la primera pasada se sale de la funcion con el return
la funcion mostrar no tiene valor de retorno (es void) y estas tratando de hacer que devuelva Pila[indice], algo que esta an algun lugar de la memoria de anda a saver donde.
estas definiendo un contructor, y despues usas el constructor por defecto muestra01(), y al no tener seters tu clase es inutil.
no estoy seguro que pasara, pero no creo que sea nada bueno, cuando Tipo = int, ya que tendrias dos constructores con los mismos parametros (a cual se llama?)

La idea del codigo que te deje en el otro post, era que lo leas y trates de entenderlo, no para copiar y pegar pedasos

Te recomiendo que busques un manual y estudies un poco.  :comp:

Saludos