En la programación orientada a objetos , un archivo de implementación de clase se usa a menudo para contener el código de implementación para el método o métodos de una clase . Este archivo también se conoce como archivo de origen . [ cita requerida ] Los lenguajes de programación como C y C ++ hacen uso de 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 la clase y el archivo de implementación para 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 que el usuario vea 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 usa 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 generalmente tendrá una línea para incluir el archivo de encabezado asociado (vea los 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 llamarí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í:
#include "example_class.h"ExampleClass :: ExampleClass () = predeterminado ;void ExampleClass :: AddSomething ( int k ) { ... }
En este ejemplo, se ha omitido la implementación de las funciones, pero las funciones deben declararse en example_class.h así: [12]
#include clase ExampleClass { public : ExampleClass (); // Constructor. anular Agregar Algo ( int k ); privado : std :: string name_ ; };
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 usa en la programación de iOS . [13] Este ejemplo utilizará "ExampleClass". Una diferencia notable entre C ++ y Objective-C al hacer uso de estos archivos de implementación son las extensiones que se usan 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 ExampleClass.h en Objective-C :
#import @interface ExampleClass : NSObject { // declaraciones de variables instancia ir aquí } - ( NSString * ) nombre ; @final
Este es un ejemplo del archivo de implementación de la clase Exampleclass.m en Objective-C :
#importar "ExampleClass.h"@implementation ExampleClass - ( NSString * ) nombre { return @ "…" ; } @end
Ver también
Referencias
- ^ Alan Griffiths (2005). "Separación de interfaz e implementación en C ++" . http://accu.org/index.php/journals/ : ACCU . Consultado el 7 de mayo de 2013 .
- ^ Alan Griffiths (2005). "Separación de interfaz e implementación en C ++" . http://accu.org/index.php/journals/ : ACCU . Consultado el 7 de mayo de 2013 .
- ^ Neuberg, Matt (26 de mayo de 2011). "Capítulo 4.3 Archivo de encabezado y archivo de implementación". Programación de iOS 4 . O'Reilly Media, Inc. ISBN 978-1-4493-8843-0.
- ^ Alan Griffiths (2005). "Separación de interfaz e implementación en C ++" . http://accu.org/index.php/journals/ : ACCU . Consultado el 7 de mayo de 2013 .
- ^ "Lo que se debe y no se debe hacer en C ++" . https://www.chromium.org/developers/coding-style/cpp-dos-and-donts : Los proyectos de Chromium . Consultado el 7 de mayo de 2013 .
- ^ "Introducción a las clases de C ++" . http://pages.cs.wisc.edu/~hasti/cs368/CppTutorial/NOTES/ . Consultado el 7 de mayo de 2013 .Mantenimiento de CS1: ubicación ( enlace )
- ^ Alan Griffiths (2005). "Separación de interfaz e implementación en C ++" . http://accu.org/index.php/journals/ : ACCU . Consultado el 7 de mayo de 2013 .
- ^ Febil Chacko Thanikal (2009). "Cómo definir una clase de plantilla en un archivo .hy implementarla en un archivo .cpp" . http://www.codeproject.com/Articles/48575/How-to-define-a-template-class-in-ah-file-and-imp : Proyecto de código . Consultado el 7 de mayo de 2013 .Mantenimiento de CS1: ubicación ( enlace )
- ^ "El archivo de implementación en Programación C ++" . http://www.itechtalk.com/ : ITechTalk . Consultado el 7 de mayo de 2013 .
- ^ "Introducción a las clases de C ++" . http://pages.cs.wisc.edu/~hasti/cs368/CppTutorial/NOTES/CLASSES-INTRO.html . Consultado el 7 de mayo de 2013 .Mantenimiento de CS1: ubicación ( enlace )
- ^ Neuberg, Matt (26 de mayo de 2011). "Capítulo 4.3 Archivo de encabezado y archivo de implementación". Programación de iOS 4 . O'Reilly Media, Inc. ISBN 978-1-4493-8843-0.
- ^ "Introducción a las clases de C ++" . http://pages.cs.wisc.edu/~hasti/cs368/CppTutorial/NOTES/CLASSES-INTRO.html . Consultado el 7 de mayo de 2013 .Mantenimiento de CS1: ubicación ( enlace )
- ^ Neuberg, Matt (26 de mayo de 2011). "Capítulo 4.3 Archivo de encabezado y archivo de implementación". Programación de iOS 4 . O'Reilly Media, Inc. ISBN 978-1-4493-8843-0.
- ^ "Introducción a las clases de C ++" . http://pages.cs.wisc.edu/~hasti/cs368/CppTutorial/NOTES/ . Consultado el 7 de mayo de 2013 .Mantenimiento de CS1: ubicación ( enlace )
- ^ Neuberg, Matt (26 de mayo de 2011). "Capítulo 4.3 Archivo de encabezado y archivo de implementación". Programación de iOS 4 . O'Reilly Media, Inc. ISBN 978-1-4493-8843-0.
- ^ "Introducción a las clases de C ++" . http://pages.cs.wisc.edu/~hasti/cs368/CppTutorial/NOTES/ . Consultado el 7 de mayo de 2013 .Mantenimiento de CS1: ubicación ( enlace )
- ^ Neuberg, Matt (26 de mayo de 2011). "Capítulo 4.3 Archivo de encabezado y archivo de implementación". Programación de iOS 4 . O'Reilly Media, Inc. ISBN 978-1-4493-8843-0.
enlaces externos
- Archivo de encabezado y archivo de implementación