Hack x Crack - Comunidad de Seguridad informática

Programación => C / C++ => Mensaje iniciado por: $i$tr0 en Junio 03, 2012, 03:40:07 pm

Título: como puedo aplicar la sobrecarga de metodos
Publicado por: $i$tr0 en Junio 03, 2012, 03:40:07 pm
hola foro HxC

tengo que realizar un ejercicio en el que hay que aplicar la sobrecarga de metodos

este trata de lo siguiente
inicializar con una fecha fija y despues ingresar una fecha nueva y mostrar esa fecha dos veces por el mismo metodo
Título: Re:como puedo aplicar la sobrecarga de metodos
Publicado por: Teyr en Junio 03, 2012, 06:06:51 pm
No entendi muy bien el problema. ¿quieres sobrecargar la funcion inicializa para que en el caso de que no se le pase ninguna fecha la inicialece con una fija para luego mostrar la fecha con una unico metodo?

seria algo asi en ese caso:

Código: C
  1. #include <iostream>
  2.  
  3. class Foo{
  4.    char* fecha;
  5.   public:
  6.     void inicializar() {fecha = "03/06/2012";}
  7.     void inicializar(char*);
  8.     void mostrar() {std::cout << fecha << std::endl;}
  9. };
  10. void Foo::inicializar(char* baz){
  11. fecha=baz;
  12. }
  13.  
  14. int main(){
  15.   Foo foo;
  16.   foo.inicializar();
  17.   foo.mostrar();
  18.   foo.inicializar("06/06/2012");
  19.   foo.mostrar();
  20.   return 0;
  21. }
  22.  
Título: Re:como puedo aplicar la sobrecarga de metodos
Publicado por: $i$tr0 en Junio 03, 2012, 06:55:29 pm
hola viejo gracias por responder este es el enunciado correcto del programa


se desea un programa que registre la fecha de ingreson de los alumnos la clase cuenta con los atributos dia, mes, año; el constructor debe inicializar con una fecha fija       los metodos deben
1.modificar el valor de la fecha dos veces por el mismo metodo
[size=0pt]2.muestre en la pantalla la fecha usando el formato día / mes / año, dos veces por el mismo  [/size]método.
3.muestre en pantallla la fecha poniendo el mes en letras dos veces por el mismo metodo 
Título: Re:como puedo aplicar la sobrecarga de metodos
Publicado por: TheLinuxUser en Junio 03, 2012, 07:44:32 pm
Si lo que quieres es sobrecargar metodos...
imagina que tienes una clase con un metodo que se llame "mostrar" (por ejemplo), el cual quieres sobrecargar:
void mostrar (string auxiliar) {
....
}
//ahora lo sobrecargamos...
void mostrar (string auxiliar,int parametro) {....}
como ves solo cambian los parametros, para llamar a los metodos:
mostrar("cadena")  //estas llamando al primer metodo
mostrar("cadena",8) //estas llamando al segundo metodo ;)
Espero que te haya sido de ayuda


saludos.
Título: Re:como puedo aplicar la sobrecarga de metodos
Publicado por: piou en Junio 04, 2012, 11:21:48 am
Yo tampoco entiendo muy bien lo qu pretendes. Lo único que conozco como sobrecarga es lo que ya te han comentado. ¿Podrías poner un ejemplo más simple? ¿O qué significa eso de dos veces por el mismo método?
Título: Re:como puedo aplicar la sobrecarga de metodos
Publicado por: maxim_o en Junio 04, 2012, 11:37:50 am
Creo que se refiere a que si por ejemplo el metodo es inicializar....
Puedes sobrecarlo y dependiendo de los parámetros que les pases hará uno u otro...

Es decir si no le pasas por parámetro la fecha, inicializar pone unna fecha.... (realiza un metodo) y si le pasas por parametro una fecha (pone esa fecha, realiza otro metodo))
Título: Re:como puedo aplicar la sobrecarga de metodos
Publicado por: Teyr en Junio 04, 2012, 01:38:09 pm
Creo que se refiere a que si por ejemplo el metodo es inicializar....
Puedes sobrecarlo y dependiendo de los parámetros que les pases hará uno u otro...

Es decir si no le pasas por parámetro la fecha, inicializar pone unna fecha.... (realiza un metodo) y si le pasas por parametro una fecha (pone esa fecha, realiza otro metodo))

Eso hace exactamente el codigo que escribi, aun asi me parece mas logico sobrecargar el contructor si solo se trata de inicializar pasandole fecha inicial o no. Luego crear un metodo setFecha que fije el valor y  lo que si se podria sobrecargar seria el metodo de impresion para que imprima normal o con mes con texto

El problema esta muy mal redactado y confunde mucho  ???
Puedes intentar googlear a los profesores le encanta usar siempre los mismos problemas...