SlideShare ist ein Scribd-Unternehmen logo
1 von 37
El modelo de Objetos Programación Orientada a Objetos con C++
Comparación entre el paradigmas Paradigma de la Programación Modular y Estructurada (PME) Paradigma de Objetos (POO) Programación Modular  y Estructurada (PME) Estructuras de datos + Algoritmos =  Programas Programación  Orientada a Objetos (POO) Objetos = Datos+ Funcionalidades
Por qué el modelo de objetos? ,[object Object],[object Object],[object Object],[object Object],[object Object]
Por qué el modelo de objetos? ,[object Object],[object Object],[object Object],[object Object],[object Object]
Características del modelo de objetos ,[object Object],[object Object],[object Object],[object Object],[object Object]
Características del modelo de objetos ,[object Object],[object Object],[object Object],[object Object],[object Object]
Características del modelo de objetos ,[object Object],[object Object],[object Object],[object Object],[object Object]
Características del modelo de objetos ,[object Object],[object Object],[object Object],[object Object],[object Object]
Programación Orientada a Objetos (POO) ,[object Object],[object Object],[object Object]
Clases ,[object Object],[object Object],[object Object]
Clases El concepto de clase
Identificar clases en  un problema de programación.  ,[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Identificar clases en  un problema de programación.
Asignar responsabilidades ,[object Object],[object Object],[object Object],miClase Dato   1 Dato 2 Dato 3 . . . Método 1 Método 2 . . .
Asignar responsabilidades ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Estructura de una clase en C++ ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Declarar un clase es definir un nuevo tipo de datos Instanciar un objeto de una clase implica declarar una variable usando esa clase como tipo
class CRectangulo  { private: float x, y, area;  public:  void fijar_valores (float,float);  void calcular_area( ); float ver_area( ) {return area;};  } ; void CRectangulo::fijar_valores (float a,float b) {  x=a; y=b;  };  void CRectangulo::calcular_area ( ) {  area= x*y; } ; Declaración de clases. Ejemplo. Nombre de la clase Atributos Métodos Implementación  de métodos
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Declaración, instanciación de clases  y acceso a los miembros Se crea la variable objeto o instancia  rect Se envía un mensaje al objeto invocando a un método
// el mismo ejemplo, pero más general . . . int main() {  float a,b; CRectangulo   rect ; cout<<“Rectangulo de dimensiones axb”<<endl;; cout<<“Ingrese altura  a=“; cin>>a; cout<<“Ingrese base b=“; cin>>b; rect.fijar_valores(a,b); rect.calcular_area( ); cout<<“Rectangulo de “<<a”<<“x”<<“b”; cout<<“Area=“<< rect.ver_area() <<endl; return 0; } Declaración, instanciación de clases  y acceso a los métodos
Clases en C++.  Varias instancias de la misma clase ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Objetos, clases e instancias Objetos, clases e instancias CRectangulo  //  clase o tipo de objeto CRectangulo rect;  // instancia u objeto  de la clase CRectangulo CRrectangulo r1, r2, r3;  // tres instancias de la clase CRectangulo E nvío de mensajes a un objeto rect1.fijar_valores(dato1,dato2); rect1.calcular_area(); cout<<&quot;Area del rectángulo=&quot;<<rect1.ver_area();
Encapsulamiento class CRectangulo  { private: float x, y, area;  public:  void calcular_area( ); } ; . . . int main() {  CRectangulo  rect1 ; rect1.x=4;  rect.y=10 // error  cout<<“Area=“<<rect1.area<<endl;  //error:  // los miembros privados son inaccesibles // fuera de la clase  . . . }
Encapsulamiento class CRectangulo  { private: float x, y, area;  public:  void fijar_valores (float,float);  void calcular_area( ); float ver_area( ) {return area;};  } ; ,[object Object],[object Object],[object Object],[object Object]
Una forma de romper el encapsulamiento: funciones amigas class CRectangulo  { private: float x, y, area;  public:  CRectangulo(float px,float py) {x=px,y=py;};  void calcular_area( ); float ver_area( ) {return area;}; friend void cambio_h(CRectangulo &r, float h) } ; void cambio_h(CRectangulo &r, float h) { r.y= h;}; void CRectangulo::calcular_area( ) { area=x*y;};
Ejemplos ,[object Object],[object Object],[object Object],[object Object]
Constructores class CRectangulo  { private: int x, y, area;  public:  CRectangulo (int, int);  void calcular_area( ) {area = x*y;}; int ver_area ( ) {return area;}; }; CRectangulo::CRectangulo (int a,int b) {  x=a; y=b; };
Sobrecarga de Constructores Constructor de copia class CRectangulo  { private: int x, y, area;  public:  CRectangulo (int, int);  CRectangulo (const Crectangulo &r); void calcular_area( ) {area = x*y;}; int ver_area ( ) {return area;}; }; void CRectangulo::CRectangulo (int a,int b) {  x=a; y=b; };  int CRectangulo::CRectangulo(const CRectangulo &r) {  x=r.x; y= r.y; } ;
Sobrecarga de Constructores Constructor de copia … int main() { CRectangulo  r1(10,4), r2(10,8),  r3(r1) Crectangulo r4;  /*error, si se definen  constructores, el constructor implícito no  puede emplearse*/ ... }
Destructores class CRectangulo  { private: int x, y, area;  public:  CRectangulo (int, int);  CRectangulo (const rectangulo& r); ~CRrectangulo(){cout<<”se destruye el objeto”;};  void calcular_area( ) {area = x*y;}; int ver_area ( ) {return area;}; };
Destructores class CRectangulo  { private: int *x, *y;  public:  CRectangulo (int, int);  ~CRrectangulo( );   void calcular_area( ) {area = (*x)*(*y);}; int ver_area ( ) {return area;}; };
Destructores CRectangulo::CRectangulo (int a, int b) { x= new int;  y= new int; *x= a;  *y= b;  }; CRectangulo:: ~CRrectangulo( ) { delete x; delete y; }; … int main() { CRectangulo r(10,4); r.calcular_area(); cout<<“Area=“<<r.ver_area(); return 0; }
Punteros a objetos class CRectangulo  { private: int x, y, area;  public:  CRectangulo (int, int);  void calcular_area( ) {area = x*y;}; int ver_area ( ) {return area;}; }; void CRectangulo::CRectangulo (int a,int b) {  x=a; y=b; };
Punteros a objetos … int main() {  CRectangulo r1(10,8); CRectangulo *pr; pr= &r1; pr->calcular_area(); cout<<“Area=“<< pr->ver_area() <<endl; return 0; }
El puntero  this C ++  dispone en toda clase de un puntero llamado  this  que contiene la dirección de memoria del objeto que se ha instanciado. class CRectangulo  { private: int x, y, area;  public:  CRectangulo (int a,int b){x=a; y=b;}; void calcular_area( ) {area = x*y;}; int ver_area ( ) {return  this->area ;}; CRectangulo &duplicar( );  }; Crectangulo &CRectangulo::duplicar( ) { x=2*x; y=2*y; area=2*area; return *this;};
El puntero  this . . . int main(int argc, char *argv[])  { CRectangulo r(10,4); r.calcular_area(); r.duplicar(); cout<<“Area=“<<r.ver_area(); return 0; } C ++  dispone en toda clase de un puntero llamado  this  que contiene la dirección de memoria del objeto que se ha instanciado. Area=80
El puntero  this //Ejemplo para el operador + T& T::funcion(parámetros) {  // acciones  . . . return *this; }
Ejemplos ,[object Object],[object Object],[object Object]

Weitere ähnliche Inhalte

Was ist angesagt?

11 Curso de POO en java - métodos constructores y toString()
11 Curso de POO en java - métodos constructores y toString()11 Curso de POO en java - métodos constructores y toString()
11 Curso de POO en java - métodos constructores y toString()Clara Patricia Avella Ibañez
 
Tema 1 2_poo
Tema 1 2_pooTema 1 2_poo
Tema 1 2_poodemon_628
 
programacion orientada a objetos
programacion orientada a objetosprogramacion orientada a objetos
programacion orientada a objetosale8819
 
Diseño de la logica
Diseño de la logicaDiseño de la logica
Diseño de la logicaanych27
 
PROGRAMACION ORIENTADA A OBJETO
PROGRAMACION ORIENTADA A OBJETOPROGRAMACION ORIENTADA A OBJETO
PROGRAMACION ORIENTADA A OBJETOAnabel Jaramillo
 
Programacion Orientada a Objetos
Programacion Orientada a ObjetosProgramacion Orientada a Objetos
Programacion Orientada a Objetoschutas666
 
Conceptos poo progra visual
Conceptos poo progra visualConceptos poo progra visual
Conceptos poo progra visualLibertad25
 
Diapositiva estructura de datos unidad 1
Diapositiva estructura de datos unidad 1Diapositiva estructura de datos unidad 1
Diapositiva estructura de datos unidad 1Ezer Ayala Mutul
 
Métodos POO
Métodos POOMétodos POO
Métodos POO1da4
 
Net1 oop vbnet
Net1 oop vbnetNet1 oop vbnet
Net1 oop vbnetjhordy2000
 
Introducción a ObjectiveC e IOS
Introducción a ObjectiveC e IOSIntroducción a ObjectiveC e IOS
Introducción a ObjectiveC e IOSEduard Tomàs
 
Programación orientada a objetos con c++
Programación orientada a objetos con c++Programación orientada a objetos con c++
Programación orientada a objetos con c++Karime Hernández
 
Propiedades De La Poo
Propiedades De La PooPropiedades De La Poo
Propiedades De La Pooda4
 
Elementos básicos de la programación orientada a objetos.
Elementos básicos de la programación orientada a objetos.Elementos básicos de la programación orientada a objetos.
Elementos básicos de la programación orientada a objetos.Whaleejaa Wha
 
Arreglos Unidimensionales - Java - NetBeans
Arreglos Unidimensionales - Java - NetBeansArreglos Unidimensionales - Java - NetBeans
Arreglos Unidimensionales - Java - NetBeansDaniel Gómez
 
programacion orientada a objetos en visual basic net
programacion orientada a objetos en visual basic netprogramacion orientada a objetos en visual basic net
programacion orientada a objetos en visual basic netpp mm
 

Was ist angesagt? (20)

11 Curso de POO en java - métodos constructores y toString()
11 Curso de POO en java - métodos constructores y toString()11 Curso de POO en java - métodos constructores y toString()
11 Curso de POO en java - métodos constructores y toString()
 
Tema 1 2_poo
Tema 1 2_pooTema 1 2_poo
Tema 1 2_poo
 
Definición de clases en POO
Definición de clases en POODefinición de clases en POO
Definición de clases en POO
 
Estructuras y clases
Estructuras y clasesEstructuras y clases
Estructuras y clases
 
programacion orientada a objetos
programacion orientada a objetosprogramacion orientada a objetos
programacion orientada a objetos
 
Mv vol2 ver5.0(corregido)
Mv vol2 ver5.0(corregido)Mv vol2 ver5.0(corregido)
Mv vol2 ver5.0(corregido)
 
8.Clases y objetos Java
8.Clases y objetos Java8.Clases y objetos Java
8.Clases y objetos Java
 
Diseño de la logica
Diseño de la logicaDiseño de la logica
Diseño de la logica
 
PROGRAMACION ORIENTADA A OBJETO
PROGRAMACION ORIENTADA A OBJETOPROGRAMACION ORIENTADA A OBJETO
PROGRAMACION ORIENTADA A OBJETO
 
Programacion Orientada a Objetos
Programacion Orientada a ObjetosProgramacion Orientada a Objetos
Programacion Orientada a Objetos
 
Conceptos poo progra visual
Conceptos poo progra visualConceptos poo progra visual
Conceptos poo progra visual
 
Diapositiva estructura de datos unidad 1
Diapositiva estructura de datos unidad 1Diapositiva estructura de datos unidad 1
Diapositiva estructura de datos unidad 1
 
Métodos POO
Métodos POOMétodos POO
Métodos POO
 
Net1 oop vbnet
Net1 oop vbnetNet1 oop vbnet
Net1 oop vbnet
 
Introducción a ObjectiveC e IOS
Introducción a ObjectiveC e IOSIntroducción a ObjectiveC e IOS
Introducción a ObjectiveC e IOS
 
Programación orientada a objetos con c++
Programación orientada a objetos con c++Programación orientada a objetos con c++
Programación orientada a objetos con c++
 
Propiedades De La Poo
Propiedades De La PooPropiedades De La Poo
Propiedades De La Poo
 
Elementos básicos de la programación orientada a objetos.
Elementos básicos de la programación orientada a objetos.Elementos básicos de la programación orientada a objetos.
Elementos básicos de la programación orientada a objetos.
 
Arreglos Unidimensionales - Java - NetBeans
Arreglos Unidimensionales - Java - NetBeansArreglos Unidimensionales - Java - NetBeans
Arreglos Unidimensionales - Java - NetBeans
 
programacion orientada a objetos en visual basic net
programacion orientada a objetos en visual basic netprogramacion orientada a objetos en visual basic net
programacion orientada a objetos en visual basic net
 

Andere mochten auch

Tema: Hardware y su evolución Eq.3 (3°B)
Tema: Hardware y su evolución Eq.3 (3°B)Tema: Hardware y su evolución Eq.3 (3°B)
Tema: Hardware y su evolución Eq.3 (3°B)raulh52ilp
 
Frei romannozago cancertemcura castellano
Frei romannozago cancertemcura castellanoFrei romannozago cancertemcura castellano
Frei romannozago cancertemcura castellanoBiancaJune
 
Maestría en pedagogía ¿Quieres estudiar la Maestría de Pedagogía en la sede d...
Maestría en pedagogía ¿Quieres estudiar la Maestría de Pedagogía en la sede d...Maestría en pedagogía ¿Quieres estudiar la Maestría de Pedagogía en la sede d...
Maestría en pedagogía ¿Quieres estudiar la Maestría de Pedagogía en la sede d...victor cervantes
 
Diagnostico participativo actualizado y rellenado
Diagnostico participativo actualizado y rellenadoDiagnostico participativo actualizado y rellenado
Diagnostico participativo actualizado y rellenadoSaidy Zamora
 
Ue i power
Ue i powerUe i power
Ue i powerAliciaLA
 
Informatica
InformaticaInformatica
InformaticaDAYSIPAZ
 
Sistema Opérativo
Sistema Opérativo Sistema Opérativo
Sistema Opérativo GlasJMP
 
Infografía de la centralita virtual de netelip
Infografía de la centralita virtual de netelipInfografía de la centralita virtual de netelip
Infografía de la centralita virtual de netelipnetelip
 
Antologiatercergrado 131119111207-phpapp02
Antologiatercergrado 131119111207-phpapp02Antologiatercergrado 131119111207-phpapp02
Antologiatercergrado 131119111207-phpapp02Matilde Blanco Peña
 

Andere mochten auch (20)

Tema: Hardware y su evolución Eq.3 (3°B)
Tema: Hardware y su evolución Eq.3 (3°B)Tema: Hardware y su evolución Eq.3 (3°B)
Tema: Hardware y su evolución Eq.3 (3°B)
 
Holaa.
Holaa.Holaa.
Holaa.
 
Reparacion
ReparacionReparacion
Reparacion
 
Frei romannozago cancertemcura castellano
Frei romannozago cancertemcura castellanoFrei romannozago cancertemcura castellano
Frei romannozago cancertemcura castellano
 
Taller 5 Hugo
Taller 5 HugoTaller 5 Hugo
Taller 5 Hugo
 
Maestría en pedagogía ¿Quieres estudiar la Maestría de Pedagogía en la sede d...
Maestría en pedagogía ¿Quieres estudiar la Maestría de Pedagogía en la sede d...Maestría en pedagogía ¿Quieres estudiar la Maestría de Pedagogía en la sede d...
Maestría en pedagogía ¿Quieres estudiar la Maestría de Pedagogía en la sede d...
 
Lipidos
LipidosLipidos
Lipidos
 
Evaluacion ciclo introductorio-2011
Evaluacion ciclo introductorio-2011Evaluacion ciclo introductorio-2011
Evaluacion ciclo introductorio-2011
 
Diagnostico participativo actualizado y rellenado
Diagnostico participativo actualizado y rellenadoDiagnostico participativo actualizado y rellenado
Diagnostico participativo actualizado y rellenado
 
Excel(1)
Excel(1)Excel(1)
Excel(1)
 
Europa.
Europa.Europa.
Europa.
 
Cuadernillo no 4
Cuadernillo no 4Cuadernillo no 4
Cuadernillo no 4
 
Ue i power
Ue i powerUe i power
Ue i power
 
Informatica
InformaticaInformatica
Informatica
 
Sistema Opérativo
Sistema Opérativo Sistema Opérativo
Sistema Opérativo
 
Infografía de la centralita virtual de netelip
Infografía de la centralita virtual de netelipInfografía de la centralita virtual de netelip
Infografía de la centralita virtual de netelip
 
Ho la 4
Ho la 4 Ho la 4
Ho la 4
 
Mantuano y monar
Mantuano y monarMantuano y monar
Mantuano y monar
 
Tema4 referencias
Tema4   referenciasTema4   referencias
Tema4 referencias
 
Antologiatercergrado 131119111207-phpapp02
Antologiatercergrado 131119111207-phpapp02Antologiatercergrado 131119111207-phpapp02
Antologiatercergrado 131119111207-phpapp02
 

Ähnlich wie Poo 2009 u2_introd_a_la_poo_2

Ähnlich wie Poo 2009 u2_introd_a_la_poo_2 (20)

programacion orientada a objetos
programacion orientada a objetosprogramacion orientada a objetos
programacion orientada a objetos
 
C++
C++C++
C++
 
Programación en c++
Programación en c++Programación en c++
Programación en c++
 
Cplus
CplusCplus
Cplus
 
C ++
C ++C ++
C ++
 
Programación Orientada a Objetos - Unidad 2: clases y objetos
Programación Orientada a Objetos - Unidad 2: clases y objetosProgramación Orientada a Objetos - Unidad 2: clases y objetos
Programación Orientada a Objetos - Unidad 2: clases y objetos
 
Programación C++.pdf
Programación C++.pdfProgramación C++.pdf
Programación C++.pdf
 
Oo basico
Oo basicoOo basico
Oo basico
 
Introduccion
IntroduccionIntroduccion
Introduccion
 
Introduccion
IntroduccionIntroduccion
Introduccion
 
Lenguaje c ++ guía para programadores
Lenguaje c ++  guía para programadoresLenguaje c ++  guía para programadores
Lenguaje c ++ guía para programadores
 
UTPL-PROGRAMACIÓN AVANZADA-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)
UTPL-PROGRAMACIÓN AVANZADA-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)UTPL-PROGRAMACIÓN AVANZADA-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)
UTPL-PROGRAMACIÓN AVANZADA-II-BIMESTRE-(OCTUBRE 2011-FEBRERO 2012)
 
El lenguaje C++ (1).ppt
El lenguaje C++ (1).pptEl lenguaje C++ (1).ppt
El lenguaje C++ (1).ppt
 
El lenguaje C++.ppt
El lenguaje C++.pptEl lenguaje C++.ppt
El lenguaje C++.ppt
 
Clase ed v7
Clase ed v7Clase ed v7
Clase ed v7
 
INTRODUCCIÓN A LA PROGRAMACIÓN - PYTHON.pptx
INTRODUCCIÓN A LA PROGRAMACIÓN - PYTHON.pptxINTRODUCCIÓN A LA PROGRAMACIÓN - PYTHON.pptx
INTRODUCCIÓN A LA PROGRAMACIÓN - PYTHON.pptx
 
IntroPython s2.pdf
IntroPython s2.pdfIntroPython s2.pdf
IntroPython s2.pdf
 
Abstracción y Encapsulación de en la programación Orientada a objetos
Abstracción y Encapsulación de en la programación Orientada a objetosAbstracción y Encapsulación de en la programación Orientada a objetos
Abstracción y Encapsulación de en la programación Orientada a objetos
 
Unidad%2 bxii estructuras
Unidad%2 bxii estructurasUnidad%2 bxii estructuras
Unidad%2 bxii estructuras
 
Objeto relacional bases datos 2
Objeto relacional bases datos 2Objeto relacional bases datos 2
Objeto relacional bases datos 2
 

Poo 2009 u2_introd_a_la_poo_2

  • 1. El modelo de Objetos Programación Orientada a Objetos con C++
  • 2. Comparación entre el paradigmas Paradigma de la Programación Modular y Estructurada (PME) Paradigma de Objetos (POO) Programación Modular y Estructurada (PME) Estructuras de datos + Algoritmos = Programas Programación Orientada a Objetos (POO) Objetos = Datos+ Funcionalidades
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11. Clases El concepto de clase
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17. class CRectangulo { private: float x, y, area; public: void fijar_valores (float,float); void calcular_area( ); float ver_area( ) {return area;}; } ; void CRectangulo::fijar_valores (float a,float b) { x=a; y=b; }; void CRectangulo::calcular_area ( ) { area= x*y; } ; Declaración de clases. Ejemplo. Nombre de la clase Atributos Métodos Implementación de métodos
  • 18.
  • 19. // el mismo ejemplo, pero más general . . . int main() { float a,b; CRectangulo rect ; cout<<“Rectangulo de dimensiones axb”<<endl;; cout<<“Ingrese altura a=“; cin>>a; cout<<“Ingrese base b=“; cin>>b; rect.fijar_valores(a,b); rect.calcular_area( ); cout<<“Rectangulo de “<<a”<<“x”<<“b”; cout<<“Area=“<< rect.ver_area() <<endl; return 0; } Declaración, instanciación de clases y acceso a los métodos
  • 20.
  • 21. Objetos, clases e instancias Objetos, clases e instancias CRectangulo // clase o tipo de objeto CRectangulo rect; // instancia u objeto de la clase CRectangulo CRrectangulo r1, r2, r3; // tres instancias de la clase CRectangulo E nvío de mensajes a un objeto rect1.fijar_valores(dato1,dato2); rect1.calcular_area(); cout<<&quot;Area del rectángulo=&quot;<<rect1.ver_area();
  • 22. Encapsulamiento class CRectangulo { private: float x, y, area; public: void calcular_area( ); } ; . . . int main() { CRectangulo rect1 ; rect1.x=4; rect.y=10 // error cout<<“Area=“<<rect1.area<<endl; //error: // los miembros privados son inaccesibles // fuera de la clase . . . }
  • 23.
  • 24. Una forma de romper el encapsulamiento: funciones amigas class CRectangulo { private: float x, y, area; public: CRectangulo(float px,float py) {x=px,y=py;}; void calcular_area( ); float ver_area( ) {return area;}; friend void cambio_h(CRectangulo &r, float h) } ; void cambio_h(CRectangulo &r, float h) { r.y= h;}; void CRectangulo::calcular_area( ) { area=x*y;};
  • 25.
  • 26. Constructores class CRectangulo { private: int x, y, area; public: CRectangulo (int, int); void calcular_area( ) {area = x*y;}; int ver_area ( ) {return area;}; }; CRectangulo::CRectangulo (int a,int b) { x=a; y=b; };
  • 27. Sobrecarga de Constructores Constructor de copia class CRectangulo { private: int x, y, area; public: CRectangulo (int, int); CRectangulo (const Crectangulo &r); void calcular_area( ) {area = x*y;}; int ver_area ( ) {return area;}; }; void CRectangulo::CRectangulo (int a,int b) { x=a; y=b; }; int CRectangulo::CRectangulo(const CRectangulo &r) { x=r.x; y= r.y; } ;
  • 28. Sobrecarga de Constructores Constructor de copia … int main() { CRectangulo r1(10,4), r2(10,8), r3(r1) Crectangulo r4; /*error, si se definen constructores, el constructor implícito no puede emplearse*/ ... }
  • 29. Destructores class CRectangulo { private: int x, y, area; public: CRectangulo (int, int); CRectangulo (const rectangulo& r); ~CRrectangulo(){cout<<”se destruye el objeto”;}; void calcular_area( ) {area = x*y;}; int ver_area ( ) {return area;}; };
  • 30. Destructores class CRectangulo { private: int *x, *y; public: CRectangulo (int, int); ~CRrectangulo( ); void calcular_area( ) {area = (*x)*(*y);}; int ver_area ( ) {return area;}; };
  • 31. Destructores CRectangulo::CRectangulo (int a, int b) { x= new int; y= new int; *x= a; *y= b; }; CRectangulo:: ~CRrectangulo( ) { delete x; delete y; }; … int main() { CRectangulo r(10,4); r.calcular_area(); cout<<“Area=“<<r.ver_area(); return 0; }
  • 32. Punteros a objetos class CRectangulo { private: int x, y, area; public: CRectangulo (int, int); void calcular_area( ) {area = x*y;}; int ver_area ( ) {return area;}; }; void CRectangulo::CRectangulo (int a,int b) { x=a; y=b; };
  • 33. Punteros a objetos … int main() { CRectangulo r1(10,8); CRectangulo *pr; pr= &r1; pr->calcular_area(); cout<<“Area=“<< pr->ver_area() <<endl; return 0; }
  • 34. El puntero this C ++ dispone en toda clase de un puntero llamado this que contiene la dirección de memoria del objeto que se ha instanciado. class CRectangulo { private: int x, y, area; public: CRectangulo (int a,int b){x=a; y=b;}; void calcular_area( ) {area = x*y;}; int ver_area ( ) {return this->area ;}; CRectangulo &duplicar( ); }; Crectangulo &CRectangulo::duplicar( ) { x=2*x; y=2*y; area=2*area; return *this;};
  • 35. El puntero this . . . int main(int argc, char *argv[]) { CRectangulo r(10,4); r.calcular_area(); r.duplicar(); cout<<“Area=“<<r.ver_area(); return 0; } C ++ dispone en toda clase de un puntero llamado this que contiene la dirección de memoria del objeto que se ha instanciado. Area=80
  • 36. El puntero this //Ejemplo para el operador + T& T::funcion(parámetros) { // acciones . . . return *this; }
  • 37.