Creamos un objeto mediante la siguiente sintaxis:
Objeto a(arg1, arg2); //Creo un objeto Objeto, usando el contructor de argumentos arg1 y arg2
Objeto b; //Creo un objeto Objeto, usando el constructor sin parámetros
Para crear un objeto en memoria dinámica usamos:
Objeto* a = new Objeto(arg1, arg2);
Objeto* b = new Objeto;
Si queremos crear un arreglo de objetos en memoria dinámica usamos:
Objeto* c = new Objeto[20] //Creo un arreglo de 20 espacios de Objeto.
delete a;
delete b;
delete [] c; //Si al crear el objeto usamos [] (Hicimos un arreglo) entonces delete // se debe llamar con []
un ejemplo de como hacer lo anteriormente descrito
main()
{
... // Aquí deberían estar declaradas algunas o las variables que se necesitan
int dim; //Dimensión del arreglo de objetos
alumno *p; //Crea un puntero a objeto alumno, Se asume que la clase alumno esta implementada
alumno *aux; //Puntero auxiliar tipo alumno (Solo por ejemplo pero no es necesario)
cout << "Cuantos alumnos tiene la clase? ";
cin >> dim; //Para cuantos objetos hay que liberar memoria? // es de ejemplo
cout << "\n";
p = new alumno[dim]; //Asigna memoria dinámicamente
if (p==0) //Si p=0 no hay memoria suficiente
{
cout << "Error no hay suficiente memoria";
return 0; //Sale del programa
};
aux=p; //Asignación de un puntero a otro del mismo tipo
do //estructura do...while
{ //que mantiene en el ciclo principal
cout << " \n";
... // aqui debería estar el menu de opciones
cin >> opcion;
switch (opcion)
{
case 1: (p+numero_objeto) -> ingresar(); //operador flecha en vez de operador punto
numero_objeto++;
break;
case 2: cout <<"\n";
cout <<"Lista de Estudiantes inscritos \n";
for (i=0;i<numero_objeto;i++)
{
cout << "Estudiante numero " << i;
cout << ": ";
(aux+i) -> mostrar_nombre();
cout << "\n";
}
break;
case 3: cout << "Ingrese el número de lista del estudiante a examinar \n";
cin >> n;
cout << "Alumno: ";
(p+n) ->mostrar_nombre();
cout << "\n";
(p+n) -> reporte();
break;
default: return 0; //Sale del programa
}
} while (opcion !=4); //sale del programa
delete [] p; //libera la memoria asignada a *p
}
Ing. Tom Zambrano
"El hombre inteligente no es aquel que lo sabe todo, sino aquel que sabe aplicar lo poco que sabe"
Zilver sTone
"El poder del hombre no radica en su fuerza, sino en el poder de su palabra"
Get news, entertainment and everything you care about at Live.com. Check it out!