Constructores Sobrecargados

Páginas: 7 (1504 palabras) Publicado: 27 de julio de 2015
Constructores Sobrecargados
Un Constructor Puede Tener El Mismo Nombre Pero Diferentes Tipos De Datos Como Argumentos. El Constructor Correcto Es Llamado Por El Compilador Según Sean Los Datos De Sus Argumentos. Ver Ejemplo Complejo.
CONSTRUCTORES SOBRECARGADOS.
Uno de los usos más comunes de la sobrecarga de funciones es con los constructores. La razón es que cuando se instancía una clase, sedeben conservar las cosas lo más flexibles que sea posible; de modo que los usuarios pueden realizar diferentes clases de instancias. Considere una clase ventana desplegable en una interfaz gráfica de usuario.
PopupWindow Window; // Genera una ventana con parámetros por
// omisión.
PopupWindow Window_1(x, y); // Genera una ventana concoordenadas
// específicas.
PopupWindow Window_2(x, y, width, Height); // Genera una ventana con
// dimensiones controladas.
PopupWindow Window_3 = Window_2; // Genera una ventana igual a la
// anterior.

La Implantación De Esta Clase Podría Parecerse Al Siguiente Código.
class PopupWindow{

Int x, y, Width, Height;public:
PopupWindow();
PopupWindow(int, int);
PopupWindow(int, int, int, int);
PopupWindow(PopupWindow&);

};
PopupWindow:: PopupWindow()
{
x = y = 100;
Widht = Heigth = 100;
}


PopupWindow:: PopupWindow(int px, int py)
{
x = px;
y = py;
Widht = Heigth = 100;
}

PopupWindow:: PopupWindow(int px,int py, int w, ,int h)
{
x = px;
y = py;
Widht = w;
Heigth = h;
}


PopupWindow::PopupWindow(PopupWindow& pw)
{
x = pw.x;
y = pw.y;
Widht = pw.Widht;
Heigth = pw.Height;
}

La clase utiliza cuatro funciones sobrecargadas que realizan el trabajo.

Con constructores sobrecargados, usted puede permitir que el usuario especifique qué variables han de ser inicializadas de manera explícita y cuales deben asumir valores definidos.

Asignación dinámica
La memoria dinámica es un espacio dealmacenamiento que se puede solicitar en tiempo de ejecución. Además de solicitar espacios de almacenamiento, también podemos liberarlos (en tiempo de ejecución) cuando dejemos de necesitarlos.
Para realizar esta administración de la memoria dinámica, C++ cuenta con dos operadores new y delete. Antes de utilizarlos, debemos incluir el encabezado .
Operadores NEW y DELETE
C++ proporciona dosoperadores para la gestión de memoria:
New: permite reservar memoria del almacén libre
Delete: permite liberar la memoria cuándo no se necesita
El Operador NEW
El operador new permite reservar un bloque de memoria y devuelve la dirección de comienzo de dicho bloque. Esta dirección se almacena en un puntero.
= new ;
Cuando se invoca al operador new, el compiladorrealiza una comprobación de tipos.
char *p = NULL ;
p = new char ;
Si la operación falla, el operador new, devuelve el puntero nulo NULL.

Hemos visto la sintaxis del operador new para la reserva de memoria para tipos de datos básicos y tipos estructura. C++ también permite reservar bloques de memoria para arrays. Se conoce como arrays dinámicos.
= new [num_componentes] ;


La zona de almacén libre se puede agotar, es decir, es posible que se solicite la reserva de memoria mediante el operador new, pero no quede memoria disponible en el almacén. La operación falla, el operador new, devuelve el puntero nulo NULL.
Es por tanto, obligatorio comprobar que el compilador ha podido realizar la reserva de memoria. Para ello preguntaremos por el valor del puntero.
int*p = NULL ;
p = new int [100];
if (p == NULL)
cout << “No hay suficiente memoria en el almacén”;
...
El Operador DELETE
Cuando ya no necesitemos más el espacio reservado debemos liberarlo, es decir, indicar al ordenador que puede destinarlo a otros fines. Para ello utilizamos el operador delete.
El operador delete libera la memoria asignada dinámicamente y la regresa al montón. delete...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • sobrecargo
  • Sobrecargos
  • sobrecargo
  • Sobrecarga
  • Constructor
  • Constructoras
  • constructor
  • Constructora

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS