• Jueves 28 de Marzo de 2024, 19:58

Autor Tema:  Plantillas en C++ ejercicio  (Leído 1712 veces)

saudiaz

  • Miembro activo
  • **
  • Mensajes: 51
  • Nacionalidad: sv
    • Ver Perfil
Plantillas en C++ ejercicio
« en: Viernes 16 de Abril de 2010, 22:43 »
0
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();
}

Epa

  • Miembro MUY activo
  • ***
  • Mensajes: 242
  • Nacionalidad: ar
    • Ver Perfil
Re: Plantillas en C++ ejercicio
« Respuesta #1 en: Sábado 17 de Abril de 2010, 03:15 »
0
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
The sweet smell of a great sorrow lies over the land.