elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Estamos en la red social de Mastodon


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Ayuda con estos constructores C++
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda con estos constructores C++  (Leído 1,405 veces)
ThronerAXE

Desconectado Desconectado

Mensajes: 27


Ver Perfil
Ayuda con estos constructores C++
« en: 6 Febrero 2014, 22:54 pm »

Código
  1. #include <iostream.h>
  2. #include <string.h>
  3. class Hola
  4. {
  5.  private:
  6.            char nom[20];
  7.            int num;
  8.  public:
  9.            Hola();
  10. };
  11. Hola::Hola()
  12. {
  13.  strcpy(nom," ");
  14.  num=0;
  15. }
  16.  

Código
  1. #include <iostream.h>
  2. #include <string.h>
  3. class Hola
  4. {
  5.  private:
  6.            char nom[20];
  7.            int num;
  8.  public:
  9.            Hola(int numero, char *nombre);
  10. };
  11. Hola::Hola(int numero, char *nombre)
  12. {
  13.  strcpy(nom,nombre);
  14.  num=numero;
  15. }

Buenas . queria saber si me podian aconsejar sobre como actuan estos 2 constructores, primero si estan escritos correctamente xd, luego en el segundo codigo q es con parametros aveces he visto que las variables las invierten de esta forma, esta correcto??:
Código
  1. strcpy(nombre,nom);
  2. numero=num;


En línea

Yoel Alejandro

Desconectado Desconectado

Mensajes: 254



Ver Perfil WWW
Re: Ayuda con estos constructores C++
« Respuesta #1 en: 7 Febrero 2014, 01:11 am »

Hola ThronerAXE, en cuánto al código me parece bien salvo por un pequeño detalle. Al menos en mi compilador de C++ (uso g++ de GNU para Linux) la biblioteca iostream debe ser cargada con la sentencia:

Código
  1. #include "iostream"
  2.  

en lugar de <iostream.h>. La explicación exacta del por qué no la tengo, pero parece que iostream es más que un simple archivo de cabecera, es como varias cosas que se cargan juntas (o algo así, no se). En fin, el asunto es que en los compiladores más recientes (no así en los antiguos) hay que escribir "iostream" (sin .h)

Lo demás está bien. Ahora, en cuanto al orden de los argumentos en strcpy te explico. El prototipo de esta función es:

Código
  1. char * strcpy( char * destino, const char origen )
  2.  

o sea, que PRIMERO va el destino, y de SEGUNDO el origen. Debe ser así, y no al revés. Entiendo que en el constructor de la clase tú desea copiar la cadena nombre a la cadena nom, por tanto debe ser, obligatoriamente:

Código:
strcpy( nom, nombre );

Por razones similares debe escribirse num = numero y no al revés. Pues, el operando a la izquierda del operador "=" es quién recibe el valor.

Ante cualquier duda sobre el orden y significado de los argumentos en una función estándar de C debes remitirte a la documentación (help) de tu compilador, a un buen libro/manual de C, o ayuda en línea por ejemplo en la excelente página c.conclase.net, y por sobre todo atender a la descripción indicada por el prototipo de la función.

Espero haberte ayudado, y cualquier cosa vuelve a preguntar ....


« Última modificación: 7 Febrero 2014, 01:13 am por yoel_alejandro » En línea

Saludos, Yoel.
P.D..-   Para mayores dudas, puedes enviarme un mensaje personal (M.P.)
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Constructores de clase
Programación Visual Basic
Gangrel 1 1,319 Último mensaje 22 Abril 2006, 01:56 am
por Gangrel
Constructores en vb.net???
.NET (C#, VB.NET, ASP)
Skeletron 3 10,721 Último mensaje 14 Octubre 2009, 03:55 am
por seba123neo
JAVA CONSTRUCTORES
Java
rodrigo619 2 2,883 Último mensaje 29 Abril 2010, 22:11 pm
por Debci
Ayuda con constructores y metodos.
Java
jscrip 2 2,341 Último mensaje 6 Julio 2013, 03:53 am
por jscrip
Ayuda con Constructores en Java - Eclipse
Programación General
JADP 2 2,726 Último mensaje 11 Noviembre 2013, 22:30 pm
por Mitsu
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines