Foros del Web » Programación para mayores de 30 ;) » C/C++ »

[SOLUCIONADO] ¿Cómo resolver este ejercicio?

Estas en el tema de ¿Cómo resolver este ejercicio? en el foro de C/C++ en Foros del Web. Hola, anteriormente me habían cerrado un tema que había abierto recientemente sobre los contructores y destructores , pero supongo que era porque ya había un ...
  #1 (permalink)  
Antiguo 20/04/2015, 22:45
 
Fecha de Ingreso: abril-2015
Mensajes: 3
Antigüedad: 9 años
Puntos: 0
¿Cómo resolver este ejercicio?

Hola, anteriormente me habían cerrado un tema que había abierto recientemente sobre los contructores y destructores, pero supongo que era porque ya había un tema abierto sobre ello y no me había percatado y pido disculpas.

Ahora me gustaría que pudiesen coolaborar conmigo sobre cómo resolver este ejercicio:

NOTA: Se debe implementar Constructores, destructores de ser posible, y arreglo de objetos.

- En una empresa se tienen los datos de sus trabajadores: nombre, edad, sueldo. Escriba un programa que calcule e imprima lo siguiente:
1. Nombre del trabajador más joven de la empresa.
2. Nombre del trabajador con mayor sueldo.
3. Edad promedio de los trabajadores de la empresa.
4. Nombre del trabajador más viejo de la empresa.

Para un máximo de 20 trabajadores (es una empresa mediana)

Es que estoy aprendiendo este lenguaje y tengo muchas dudas con respecto a este tema, creo que con la resolución de este ejercicio me quedarán las cosas más que claras. Saludos y disculpen si cometo fallos con la normativa del foro, o alguno que otro error de ortografía.
  #2 (permalink)  
Antiguo 21/04/2015, 00:53
 
Fecha de Ingreso: octubre-2014
Ubicación: Madrid
Mensajes: 1.212
Antigüedad: 9 años, 7 meses
Puntos: 204
Respuesta: ¿Cómo resolver este ejercicio?

Dudo que nadie te resuelva el ejercicio. Una cosa es ayudarte con una duda y otra ponerte el código completo sin que tú hayas escrito una sola línea.

Un constructor no es más que una función especial que se ejecuta cada vez que se crea una nueva instancia de un objeto. Su función es, simplemente, establecer una configuración inicial estable del objeto (por ejemplo inicializar memoria dinámica, establecer valores iniciales de variables, poner punteros no válidos a null y cosas así). SIEMPRE que, en C++, se cree un elemento basado en una clase o una estructura se va a llamar a un constructor ¿a cual? Depende. Hay dos tipos de constructores: básicos y personalizados.

Constructores básicos:

Los constructores básicos son una serie de constructores que, por defecto, siempre van a estar disponibles. Si no se programa explícitamente un constructor básico el compilador va a crear una versión del mismo.
  • Constructor por defecto: No tiene argumentos.
  • Constructor copia: Un argumento, que es una referencia a un objeto de la misma clase. Realiza una copia del objeto pasado como argumento.
  • Constructor "move": Constructor nuevo en C++11 y posteriores. Similar al constructor copia, de momento lo dejamos ahí.

Constructores personalizados:

Los constructores personalizados engloban el resto de constructores que definas. Su finalidad es proporcionar un punto de entrada sencillo para crear el objeto, teniendo en cuenta las necesidades específicas de dicho objeto.

Ejemplo:

Código C++:
Ver original
  1. class POO
  2. {
  3.   public:
  4.  
  5.     // Constructor por defecto
  6.     POO( )
  7.       : variable( 0 )
  8.     { }
  9.  
  10.     // Constructor copia
  11.     POO( const  POO& otro )
  12.       : variable( otro.variable )
  13.    { }
  14.  
  15.     // Constructor personalizado
  16.     POO( int var )
  17.       : variable( var )
  18.     { }
  19.  
  20.     int Variable( ) const
  21.     { return variable; }
  22.  
  23.     void SetVariable( int variable )
  24.     { this->variable = variable; }
  25.  
  26.   private:
  27.  
  28.     int variable;
  29. };
  30.  
  31. int main( )
  32. {
  33.   // Ejemplos de llamadas al constructor por defecto
  34.   POO def01;
  35.   POO def02 = POO( );
  36.   POO def03( );
  37.  
  38.   // Constructor copia
  39.   POO cop01 = POO( def01 );
  40.   POO cop02( def02 );
  41.   POO cop03 = def02;
  42.  
  43.   // Constructor personalizado
  44.   POO per01 = POO( 3 );
  45.   POO per02( 34 );
  46. }

Por tanto, tenemos que poner un énfasis especial en los siguientes puntos:
  • Siempre que se crea una nueva instancia de un objeto se llama a un constructor
  • El constructor debe asegurar que el objeto creado se puede usar de forma segura (variables inicializadas)
  • Los constructores de una clase admiten sobrecarga
  • El constructor que acabe siendo llamado dependerá de los argumentos usados para crear el objeto

¿Dudas?

Etiquetas: arreglo, programa, resolver
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:29.