Clases

1,411
-1

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,411
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
27
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Clases

  1. 1. P rogramación O rientada a O bjetos 30 de Marzo de 2009
  2. 2. <ul><li>Definición de Clases </li></ul><ul><li>Cada clase contiene : </li></ul><ul><li>Datos ( datos miembro o campos), los cuales especifican las propiedades de los objetos. </li></ul><ul><li>Funciones ( funciones miembro o métodos), mediante los cuales se modela su comportamiento y las acciones que puede realizar. </li></ul>
  3. 3. 1 // Declaración de una clase 2 class MiClase 3 { 4 // Declaración de datos miembro 5 // Declaración de métodos 6 }; Un ejemplo de esto se puede apreciar en el siguiente fragmento de código:
  4. 4. En la declaración de una clase, para cada dato miembro, debe especificarse mediante los modificadores de acceso el ámbito desde el cual puede accederse a dicho miembro. Éstos son:
  5. 5. · Private: Sólo se permite su acceso desde los métodos de la clase. · Public: Se permite su acceso desde cualquier punto que pueda usar la clase. Un dato público es accesible desde cualquier objeto de la clase. · Protected: Se permite su uso en los métodos de la clase y en los de las clases derivadas mediante herencia.
  6. 6. <ul><li>2. Constructores y Destructores </li></ul><ul><li>Características de los constructores: </li></ul><ul><li>Cuando se crea un objeto de una clase siempre se llama automáticamente a un constructor. </li></ul><ul><li>Se emplea para iniciar los objetos de una clase. </li></ul><ul><li>Es particularmente útil para reservar, si es necesario, memoria para ciertos campos del objeto. </li></ul>
  7. 7. <ul><li>Pueden haber varios constructores para una clase. </li></ul><ul><li>Un constructor tiene el mismo nombre que la clase en la que está declarado y no devuelve nada. </li></ul><ul><li>Cuando no se define ningún constructor en una clase, el compilador crea un constructor por defecto, sin argumentos, que inicia los datos miembros a cero. </li></ul>
  8. 8. <ul><li>Características de los destructores: </li></ul><ul><li>Sólo hay un destructor para una clase. </li></ul><ul><li>Cuando un objeto deja de existir siempre se llama automáticamente al destructor. </li></ul><ul><li>Un destructor tiene el mismo nombre de la clase, precedido por el carácter “~”. </li></ul>
  9. 9. <ul><li>El destructor no admite parámetros ni devuelve ningún valor. </li></ul><ul><li>Si no se especifica, el compilador proporciona un destructor por defecto. Su implementación tiene sentido sólo cuando el constructor ha reservado memoria dinámicamente. </li></ul>
  10. 10. Un ejemplo de esto se puede apreciar en el siguiente fragmento de código: 1 class MiClase 2 { 3 public: 4 int *arreglo; 5 6 // Constructor 7 8 MiClase () 9 { 10 arreglo = new int[10]; 11 } 12 13 // Destructor 14 15 ~MiClase () 16 { 17 delete [] arreglo; 18 } 19 };
  11. 11. 3. Métodos Características de la declaración de los métodos: · Se declaran como cualquier función en C++. · Se especifican los prototipos de los métodos en la declaración de la clase. Su implementación puede ser dentro de la declaración de la clase o en un archivo .cpp
  12. 12. <ul><li>Es usual disponer de métodos públicos que modifican y/o leen el valor de los datos privados. </li></ul><ul><li>Pueden definirse funciones privadas que pueden ser de utilidad (funciones auxiliares) para las funciones públicas. </li></ul>
  13. 13. El apuntador this es una variable predefinida en todas las funciones o métodos miembro de una clase. Contiene la dirección del objeto concreto de la clase sobre la cual se está aplicando la función u operador miembro. Al ser apuntador, el acceso a los miembros del objeto se realizará con el operador flecha (->).
  14. 14. 4. Instanciación <ul><li>Un objeto se puede crear de dos formas: </li></ul><ul><li>Estática (el objeto existe mientras no se pierda alcance sobre él). </li></ul><ul><li>Sintaxis: </li></ul><ul><li>Nombre_de_clase variable_del_objeto; </li></ul>
  15. 15. <ul><li>Dinámica (el objeto se crea en memoria dinámica, y existe mientras no sea eliminado explícitamente de ésta). </li></ul><ul><li>Sintaxis: </li></ul><ul><li>Nombre_de_clase *apuntador_al_objeto; </li></ul><ul><li>apuntador_al_objeto = new Nombre_de_clase; </li></ul>
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×