• Viernes 19 de Abril de 2024, 04:16

Autor Tema:  duda con objetos  (Leído 1154 veces)

Alfonsos1

  • Miembro activo
  • **
  • Mensajes: 60
    • Ver Perfil
duda con objetos
« en: Jueves 20 de Enero de 2011, 23:19 »
0
si se le da el mismo nombre a una funcion miembro que a su clase, cuando se creea un objeto la funcion mismbro se ejecuta automaticamente.

quisiera saber si esto ocurre cuando declaro un array de objetos

por ejemplo:

Citar
class cosa
{
 public:
   int peso;
   void iniciar();
};

void cosa::iniciar()
{
  peso=1;
}

//y luego el array:

cosa miscosas[10][10];

en ese ejemplo todos los objetos de miscosas tendrian la variable peso con un valor de 1, ¿no?

ProfesorX

  • Moderador
  • ******
  • Mensajes: 796
  • Nacionalidad: mx
    • Ver Perfil
Re: duda con objetos
« Respuesta #1 en: Jueves 20 de Enero de 2011, 23:54 »
0
Cita de: "Alfonsos1"
1. si se le da el mismo nombre a una funcion miembro que a su clase, cuando se creea un objeto la funcion mismbro se ejecuta automaticamente.

R. Si, aunque esta funcion pertenece a un tipo especial llamado constructor.

Citar
2. quisiera saber si esto ocurre cuando declaro un array de objetos

R. Si de nuevo

Citar
por ejemplo:

Citar
class cosa
{
 public:
   int peso;
   void iniciar();
};

void cosa::iniciar()
{
  peso=1;
}

//y luego el array:

cosa miscosas[10][10];

en ese ejemplo todos los objetos de miscosas tendrian la variable peso con un valor de 1, ¿no?

El ejemplo que pones es incorrecto, ya que el metodo iniciar no tiene el mismo nombre de tu clase, por lo tanto el metodo iniciar nunca se ejecutara al crear la clase, la forma correcta seria eliminar el void y cambiar el nombre del metodo a cosa (que llamare constructor de ahora en adelante y no metodo, ya que en realidad eso es y aunque un constructor se parezca a los metodos de una clase, no son iguales).

Código: C++
  1.  
  2. class cosa
  3. {
  4. public:
  5.     int peso;
  6.     cosa(); // Costructor
  7. };
  8.  
  9. cosa::cosa() // Constructor
  10. {
  11.     peso=1;
  12. }
  13.  
  14.  
  15.  

Recomiendo que leas sobre constructores (llamados al crear el objeto) y su contraparte, los destructores, (llamados cuando eliminas el objeto).

Saludos :)

NOTA:
==================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
==================================================================

Alfonsos1

  • Miembro activo
  • **
  • Mensajes: 60
    • Ver Perfil
Re: duda con objetos
« Respuesta #2 en: Viernes 21 de Enero de 2011, 00:25 »
0
Citar
el metodo iniciar no tiene el mismo nombre de tu clase
fue sin querer

gracias por la respuesta