PUNTEROS A CLASES EN C
Punteros a clases.
Como cualquier otro tipo de dato, podemos tener punteros a clases, punteros a punteros a clases, punteros a punteros a punteros a clases, etc. Veamos un ejemplo:
# include <iostream.h>
# include 'Caja.h'
main() {
Caja grande (20, 10, 30);
Caja *punteroACaja1;
Caja *punteorACaja2;
punteroACaja1 = new Caja;
punteroACaja2 = new Caja(1, 2, 3);
cout << 'El volumen de la caja grande es ' << grande.volumen() << '\n';
cout << 'El nuevo volumen 2 es ' << punteroACaja2 -> volumen() << '\n';
punteroACaja1 -> set (2, 4, 6);
cout << 'El nuevo volumen 1 es ' << punteroACaja1 -> volumen() << '\n';
delete punteroACaja1, punteroACaja2;
}
La salida de este programa sera:
El volumen de la caja grande es 6000
El nuevo volumen 2 es 6
El nuevo volumen 1 es 48
En este ejemplo hemos declarado dos punteros, punteroACaja1 y punteroACaja2, a objetos del tipo Caja. Hemos reservado memoria para la clase utilizando new, y al final de la funcion la hemos liberado utilizando delete.
Cuando declaramos punteroACaja1 y punteroACaja2 no se llama al constructor de Caja. Esto se hace cuando reservamos memoria para un objeto de ese tipo.
El acceso a los componentes del objeto se hace a traves del operador ->
Las siguientes sentencias son equivalentes:
punteroACaja1 -> volumen()
(*punteroACaja1).volumen()
pero la notacion -> es la que se suele utilizar.
Si la clase tuviese un destructor, este seria llamado automaticamente cuando liberamos la memoria reservada dinamicamente para punteroACaja1 y punteroACaja2.
Anterior:
clases puntero interno
Siguiente:
8 objetos encadenados
apuntes lenguaje c:
· Algunos conceptos· Tipos en el lenguaje c
· Variables y constantes en c
· Operadores en el lenguaje c
· Entrada/salida en c
· Estructuras de control en c
· Arrays y punteros en c
· Reserva dinamica de memoria en c
· Funciones en lenguaje c
· Estructuras en lenguaje c
· Clases
· Clases y encapsulacion en c
· Clases constructores y desctructores en c
· Descomposicion en modulos en c
· Array de objetos en c
· Clases static en c
· Un objeto con un puntero interno
· Punteros a clases en c
· Objetos encadenados en c
· Sobrecarga de operadores en c
IMPORTANTE:
- Si te ha gustado esta pagina, por favor, votanos aqui:- Si no te ha gustado, escribenos y cuentanos en que mejorar.

apuntes