Tema: Punteros a Objetos. Puntero this

Programación II. Guía 6 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II Tema: Punteros a Objetos. Puntero this. Objetivos E

0 downloads 100 Views 69KB Size

Recommend Stories


Punteros
Estructura de datos. Listas. Pilas. Colas. Estructuras relacionadas

Tema 11: Programación orientada a objetos
Tema 11: Programación orientada a objetos Índice 1 La Programación Orientada a Objetos...............................................................

TEMA 1. Lenguaje matemático; objetos matemáticos
U.A.H. “Actualización de Conocimientos Matemáticos para…” 1 TEMA 1. Lenguaje matemático; objetos matemáticos… Lenguaje matemático Para aprender Mate

Persistencia Orientada a objetos
Persistencia Orientada a objetos Prof. Mg. Javier Bazzocco 2011 1 Bazzocco, Javier Persistencia orientada a objetos. - 1a ed. - La Plata : Universi

Orientación a objetos en PHP
Orientación a objetos en PHP Dídac Gil de la Iglesia PID_00155710 CC-BY • PID_00155710 Los textos e imágenes publicados en esta obra están sujetos

Story Transcript

Programación II. Guía 6

1

Facultad: Ingeniería Escuela: Computación Asignatura: Programación II

Tema: Punteros a Objetos. Puntero this. Objetivos Específico 

Manejar objetos por medio de punteros.



Utilizar el puntero this.



Implementar programas en C++ que incluyan el uso de punteros a Objetos y la utilización del puntero this.

Materiales y Equipo • Computadora con el software DevC++ • Guía Número 6

Introducción Teórica Punteros a objetos. Pueden declararse punteros que apuntan a objetos, la sintaxis a utilizar para la declaración es la común, solo es diferente el modo en que es invocado un dato o función miembro. Con tal fin se utiliza el operador "->”. La sintaxis para la declaración de punteros a objetos es la siguiente: * ;

Un ejemplo de la declaración basado en la clase celular de la guía anterior es el siguiente: celular *pCell1;

Para definir un puntero apuntando a un objeto con asignación dinámica de memoria se usa la siguiente sintaxis: = new ;

2

Programación II, Guía 6

Ejemplo: pCell1 = new celular(“75757575”);

La sintaxis para el acceso a miembros de clase a partir de un puntero a objeto es la siguiente -> ;

Ejemplo: pCell1->llamar( );

Se recomienda que a los nombres de puntero se les anteponga una “p” para su rápido reconocimiento por parte del programador. Los punteros pueden inicializarse como puntero nulo o a través de otro puntero ya inicializado. Sin embargo estas opciones hacen al puntero una entidad dependiente de la memoria que se haya reservado para los objetos que asignan su dirección al puntero. Para que el puntero tenga respaldo independiente en memoria la vía indicada es la reserva de memoria dinámica para el mismo. El puntero implícito "this".

El puntero this es un atributo especial del objeto, el cual guarda la dirección de memoria del objeto para poder referirse a si mismo en cualquier momento, esto es usado por la manera de distribuir los objetos en memoria: los atributos de cada objeto son independientes de los de otro objeto, pero los métodos son compartidos por todos los objetos declarados del mismo tipo de clase, así cuando se llama un método del objeto, implícitamente se manda como parámetro el puntero this de ese objeto para que el método sepa a que atributos referirse a la hora de procesarlos. En C++ se define this dentro de un objeto como un puntero al objeto en que está contenido. Se declara implícitamente como: class_name *this; El puntero this se inicializa para apuntar al objeto para el cual se llama a la función miembro. Este puntero es muy útil cuando se trabaja con punteros y especialmente en listas enlazadas, cuando se necesita referenciar un puntero al objeto que se está insertando en la lista.

Programación II. Guía 6 3 La palabra this está disponible para este propósito y puede ser utilizada en cualquier objeto. Realmente la forma apropiada de referenciar a cualquier variable en una lista es a través del uso del puntero predefinido this, escribiendo this -> nombre del miembro, pero el compilador supone que se está usando, y podemos omitir el puntero. También hay que tomar en cuenta que: • El tipo de este apuntador this depende del tipo del objeto al cual apunta y que no puede ser declarado explícitamente, es decir, es declarado y definido por el compilador. • Un uso del apuntador this es impedir que un objeto sea asignado a sí mismo. • Es una variable local, es decir, que no puede ser usado explícitamente fuera de la clase. El puntero this siempre es usado de manera implícita, asi la llamada a la función verNumero del ejemplo de la clase celular, puede ser usada con el puntero this manteniendo su estructura: char *celular::verNumero ( ) { return this->miNumero; }

Un ejemplo del uso del puntero this es el retornar la dirección de memoria del objeto: celular *celular::miDireccionDeMemoria ( ) { return this; }

Procedimiento Ejemplo 1: Uso de puntero this y arreglo de objetos.

4

Programación II, Guía 6

#include using namespace std; class miclase { public: miclase( ) { }; void EresTu(miclase& c) { if(&c == this) cout ancho=y;

Programación II. Guía 6 5 this->largo=z; } double Paralelepipedo::calcular_volumen() { this->volumen=this->alto*this->ancho*this->largo; return this->volumen; } int main() { Paralelepipedo objeto1 = Paralelepipedo(10,5,10); cout

Get in touch

Social

© Copyright 2013 - 2024 MYDOKUMENT.COM - All rights reserved.