stringtranslate.com

Archivo de implementación de clase

En la programación orientada a objetos , a menudo se utiliza un archivo de implementación de clase para contener el código de implementación de los métodos de una clase . Los lenguajes de programación como C++ y Objective-C utilizan estos archivos de implementación para separar la interfaz y la implementación de estos métodos. [1]

Motivación

Usando esta estructura, también se crea un archivo de definición de clase que contiene la declaración de la clase y sus miembros. Si se ha incluido la definición de clase y el archivo de implementación de sus métodos está disponible, el usuario puede crear una instancia de un objeto de la clase. El propósito de esta estructura es mantener oculto el código de implementación, pero permitir al usuario ver el diseño. [2] [3]

Los usuarios hacen uso de la interfaz pública de un objeto para que la creación de objetos sea lo más simple posible, asegurando que el código del cliente no distraiga al usuario con detalles innecesarios de la implementación de la clase. [4] Esto permite al usuario la información necesaria para utilizar la clase de forma eficaz, pero evita que dañe el código compilado. [5]

La estructura de un archivo de implementación de clase.

Un archivo de implementación se utiliza en la programación C++ al crear una definición de clase para dividir la interfaz de la implementación. El archivo de encabezado declararía todas las funciones miembro (métodos) y métodos de datos (campos) que tiene la clase. [6] [7] [8]

El archivo de implementación contendrá la definición real o el código fuente de los métodos declarados en el archivo de encabezado . Este archivo puede comenzar con un bloque de encabezado, que proporciona comentarios que describen el propósito de la clase definida y cualquier detalle sobre la creación del archivo real, como el autor del archivo y la fecha en que se creó. [9] También puede incluir cualquier biblioteca de la biblioteca estándar de C++ que será utilizada por cualquiera de los métodos declarados en el archivo. El archivo de implementación de la clase normalmente tendrá una línea para incluir el archivo de encabezado asociado (ver ejemplos a continuación).

Ejemplo en C++

Un ejemplo sería tener una clase llamada ExampleClass. El archivo de encabezado de este archivo C++ se denominaría "example_class.h" y el archivo de implementación sería "example_class.cc". [10] [11]

Un ejemplo de la estructura de example_class.cc se vería así:

#incluir "example_class.h" Clase de ejemplo :: Clase de ejemplo () = predeterminado ;  void Ejemplo de clase::Agregar algo ( int k ) { ... }    

En este ejemplo, se omitió la implementación de las funciones, pero las funciones deben declararse en example_class.h así: [12]

#incluir <cadena> clase Clase de ejemplo { público : Clase de ejemplo (); // Constructor. void Agregar algo ( int k );         privado : std :: cadena nombre_ ; };   

Ejemplo en Objective-C

Otro ejemplo de cómo se estructuraría un archivo de implementación de clase se puede ver con Objective-C , que se utiliza en la programación de iOS . [13] Este ejemplo utilizará "ExampleClass". Una diferencia notable entre C++ y Objective-C cuando se utilizan estos archivos de implementación son las extensiones utilizadas al final de los archivos. En C++ será .cpp [14] y en Objective-C será .m , [15] pero ambos usarán la misma extensión .h para sus archivos de encabezado [16] [17] como se muestra en la ejemplo a continuación.

Este es un ejemplo de EjemploClass.h en Objective-C :

#importar <UIKit/UIKit.h>@interface  EjemploClase  : NSObject  { // las declaraciones de variables de instancia van aquí } - ( NSString * ) nombre ; @fin   

Este es un ejemplo del archivo de implementación de la clase Ejemploclass.m en Objective-C :

#importar "Clase de ejemplo.h"@implementation  EjemploClase -  ( NSString * )  nombre { return @"…" ; } @fin   

Ver también

Referencias

  1. ^ Alan Griffiths (2005). "Separación de interfaz e implementación en C++". ACCU . Consultado el 7 de mayo de 2013 .
  2. ^ Alan Griffiths (2005). "Separación de interfaz e implementación en C++". ACCU . Consultado el 7 de mayo de 2013 .
  3. ^ Neuberg, Matt (26 de mayo de 2011). "Capítulo 4.3 Archivo de encabezado y archivo de implementación". Programación iOS 4 . O'Reilly Media, Inc. ISBN 978-1-4493-8843-0.
  4. ^ Alan Griffiths (2005). "Separación de interfaz e implementación en C++". ACCU . Consultado el 7 de mayo de 2013 .
  5. ^ "Qué hacer y qué no hacer en C ++". Los proyectos de cromo . Consultado el 7 de mayo de 2013 .
  6. ^ "Introducción a las clases de C++" . Consultado el 7 de mayo de 2013 .
  7. ^ Alan Griffiths (2005). "Separación de interfaz e implementación en C++". ACCU . Consultado el 7 de mayo de 2013 .
  8. ^ Febil Chacko Thanikal (2009). "Cómo definir una clase de plantilla en un archivo .h e implementarla en un archivo .cpp". Proyecto de código . Consultado el 7 de mayo de 2013 .
  9. ^ "El archivo de implementación en programación C++". ITechTalk . Consultado el 7 de mayo de 2013 .
  10. ^ "Introducción a las clases de C++" . Consultado el 7 de mayo de 2013 .
  11. ^ Neuberg, Matt (26 de mayo de 2011). "Capítulo 4.3 Archivo de encabezado y archivo de implementación". Programación iOS 4 . O'Reilly Media, Inc. ISBN 978-1-4493-8843-0.
  12. ^ "Introducción a las clases de C++" . Consultado el 7 de mayo de 2013 .
  13. ^ Neuberg, Matt (26 de mayo de 2011). "Capítulo 4.3 Archivo de encabezado y archivo de implementación". Programación iOS 4 . O'Reilly Media, Inc. ISBN 978-1-4493-8843-0.
  14. ^ "Introducción a las clases de C++" . Consultado el 7 de mayo de 2013 .
  15. ^ Neuberg, Matt (26 de mayo de 2011). "Capítulo 4.3 Archivo de encabezado y archivo de implementación". Programación iOS 4 . O'Reilly Media, Inc. ISBN 978-1-4493-8843-0.
  16. ^ "Introducción a las clases de C++" . Consultado el 7 de mayo de 2013 .
  17. ^ Neuberg, Matt (26 de mayo de 2011). "Capítulo 4.3 Archivo de encabezado y archivo de implementación". Programación iOS 4 . O'Reilly Media, Inc. ISBN 978-1-4493-8843-0.

enlaces externos