traduccion c++

25
Qué es un archivo DLL? Un archivo DLL es una biblioteca que contiene el código y los datos que se pueden utilizar por más de un programa al mismo tiempo. Por ejemplo, en sistemas operativos Windows, el archivo Comdlg32 DLL realiza común funciones relacionadas con el cuadro de diálogo. Por lo tanto, cada programa puede usar la funcionalidad contenida en este archivo DLL para implementar un cuadro de diálogo Abrir . Esto ayuda a promover la reutilización de código y el uso eficaz de la memoria. Mediante el uso de un archivo DLL, un programa puede ser modular en componentes separados. Por ejemplo, un programa de contabilidad puede venderse por módulo. Cada módulo puede cargarse en el programa principal en tiempo de ejecución, si está instalado el módulo. Dado que los módulos son independientes, el tiempo de carga del programa es más rápido y un módulo sólo se carga cuando se solicita esa funcionalidad. Además, las actualizaciones son más fáciles de aplicar a cada módulo sin afectar a otras partes del programa. Por ejemplo, puede que un programa de nóminas y los tipos impositivos cambian cada año. Cuando estos cambios se aíslan en un archivo DLL, puede aplicar una actualización sin necesidad de generar o vuelva a instalar el programa. La lista siguiente describe algunos de los archivos que se implementan como archivos DLL en los sistemas operativos Windows: Archivos de controles ActiveX (.ocx) Un ejemplo de un control ActiveX es un control de calendario que le permite seleccionar una fecha en un calendario. Archivos (.cpl) del Panel de control Un ejemplo de un archivo .cpl es un elemento que se encuentra en el Panel de Control. Archivos (.drv) del controlador de dispositivo Un ejemplo de un controlador de dispositivo es un

Upload: mario

Post on 16-Nov-2015

238 views

Category:

Documents


4 download

DESCRIPTION

Una traduccion de inicio para C++

TRANSCRIPT

Los compiladores introducen las medidas adicionales de compilar el cdigo fuente (que es legible por humanos) en cdigo objeto (que es legible por mquinas)

Qu es un archivo DLL?

Un archivo DLL es una biblioteca que contiene el cdigo y los datos que se pueden utilizar por ms de un programa al mismo tiempo.Por ejemplo, en sistemas operativos Windows, el archivo Comdlg32 DLL realiza comn funciones relacionadas con el cuadro de dilogo.Por lo tanto, cada programa puede usar la funcionalidad contenida en este archivo DLL para implementar un cuadro de dilogoAbrir.Esto ayuda a promover la reutilizacin de cdigo y el uso eficaz de la memoria.

Mediante el uso de un archivo DLL, un programa puede ser modular en componentes separados.Por ejemplo, un programa de contabilidad puede venderse por mdulo.Cada mdulo puede cargarse en el programa principal en tiempo de ejecucin, si est instalado el mdulo.Dado que los mdulos son independientes, el tiempo de carga del programa es ms rpido y un mdulo slo se carga cuando se solicita esa funcionalidad.

Adems, las actualizaciones son ms fciles de aplicar a cada mdulo sin afectar a otras partes del programa.Por ejemplo, puede que un programa de nminas y los tipos impositivos cambian cada ao.Cuando estos cambios se aslan en un archivo DLL, puede aplicar una actualizacin sin necesidad de generar o vuelva a instalar el programa.

La lista siguiente describe algunos de los archivos que se implementan como archivos DLL en los sistemas operativos Windows: Archivos de controles ActiveX (.ocx)Un ejemplo de un control ActiveX es un control de calendario que le permite seleccionar una fecha en un calendario.

Archivos (.cpl) del Panel de controlUn ejemplo de un archivo .cpl es un elemento que se encuentra en el Panel de Control.

Archivos (.drv) del controlador de dispositivoUn ejemplo de un controlador de dispositivo es un controlador de impresora que controla la impresin en una impresora.

Ventajas DLL

La lista siguiente describen algunas de las ventajas que se proporcionan cuando un programa utiliza un archivo DLL: Utiliza menos recursosCuando varios programas utilizan la misma biblioteca de funciones, un archivo DLL puede reducir la duplicacin de cdigo que se carga en el disco y en la memoria fsica.

Promueve la arquitectura modularUn archivo DLL ayuda a promover el desarrollo de programas modulares.

Instalacin e implementacin de las aceleracionesCuando una funcin dentro de un archivo DLL necesita una actualizacin o una revisin, la distribucin y la instalacin de la DLL no requiere el programa volver a vincular con el archivo DLL.

Dependencias de DLL

Cuando un programa o un archivo DLL utiliza una funcin DLL en otro archivo DLL, se crea una dependencia. Una DLL dependiente se actualiza a una nueva versin.

Se fija una DLL dependiente.

Una DLL dependiente se sobrescribe con una versin anterior.

Una DLL dependiente se quita del equipo.

Estas acciones se conocen generalmente como conflictos de DLL.

La lista siguiente describe los cambios que se han introducido en Microsoft Windows 2000 y en sistemas operativos de Windows posteriores para ayudar a minimizar los problemas de dependencia: Proteccin de archivos de WindowsEn la proteccin de archivos de Windows, el sistema operativo impide que las DLL se actualiza o elimina un agente no autorizado del sistema.

Archivos DLL privadosDejar archivos DLL privados aislar un programa de los cambios que se realizan en los archivos DLL de Private archivos DLL compartidos utilizan informacin especfica de la versin o un archivo .local vaca para exigir la versin de la DLL que es utilizada por el programa.

Herramientas para solucionar problemas de DLL

Varias herramientas estn disponibles para ayudarle a solucionar problemas DLL.Dependency Walker

La herramienta Dependency Walker puede recursivamente para todos los archivos DLL dependientes que son utilizados por un programa. Dependency Walker busca archivos DLL que faltan.

Dependency Walker comprueba si los archivos de programa o archivos DLL que no son vlidas.

Dependency Walker comprueba que las funciones de importacin y exportacin coincidencia de funciones.

Dependency Walker comprueba si hay errores de dependencia circular.

Dependency Walker comprueba los mdulos que no son vlidos porque los mdulos son para un sistema operativo diferente.

Mediante el uso de Dependency Walker, puede documentar todos los archivos DLL que utiliza el programa.Esto puede ayudar a evitar y corregir problemas DLL que pueden surgir en el futuro.Cuando se instala Microsoft Visual Studio 6.0, Dependency Walker se encuentra en el directorio siguiente:unidad\Program Files\Microsoft Visual Studio\Common\Tools

DLL Solucionador de Universal

La herramienta Solucionador Universal de Problemas de DLL (DUPS) es utilizada para auditar, comparar, documentar y mostrar la informacin del archivo DLL.La lista siguiente describe las utilidades de la herramienta de duplicados: Dlister.exeEsta utilidad enumera todos los archivos DLL en el equipo y registra la informacin en un archivo de texto o a un archivo de base de datos.

Dcomp.exeEsta utilidad compara los archivos DLL que se enumeran en dos archivos de texto y produce un tercer archivo de texto que contiene las diferencias.

Dtxt2DB.exeEsta utilidad carga los archivos de texto que se crean mediante la utilidad Dlister.exe y la utilidad de Dcomp.exe en la base de datos de dllHell.

DlgDtxt2DB.exeEsta utilidad ofrece una versin de interfaz grfica de usuario de la utilidad Dtxt2DB.exe.

Para obtener ms informacin acerca de la herramienta de duplicados, haga clic en el nmero de artculo siguiente para verlo en Microsoft Knowledge Base:247957Uso de DUPS.exe para resolver problemas de compatibilidad DLL

Base de datos DLL Help

La base de datos DLL Help le ayudar a encontrar las versiones especficas de archivos DLL que estn instaladas por los productos de software de Microsoft.Para obtener ms informacin acerca de la base de datos DLL Help, visite el siguiente sitio Web de Microsoft:Desarrollo de DLL

Esta seccin describe los problemas y los requisitos que debe tener en cuenta al desarrollar las DLL.Tipos de archivos DLL

Cuando se carga un archivo DLL en una aplicacin, dos mtodos de vinculacin permiten llamar a las funciones exportadas del archivo DLL.Los dos mtodos de vinculacin son vinculacin dinmica en tiempo de carga y vinculacin dinmica en tiempo de ejecucin.Vinculacin dinmica en tiempo de carga

En la vinculacin dinmica en tiempo de ejecucin, una aplicacin llama a la funcinLoadLibraryo a la funcinLoadLibraryExpara cargar el archivo DLL en tiempo de ejecucin. Despus de la DLL funcin de DLL ha cargado correctamente, utilice la funcinGetProcAddresspara obtener la direccin de la exportacin, que que desea llamar. Cuando se utiliza la vinculacin dinmica en tiempo de ejecucin, no es necesario un Importar archivo de biblioteca.

En la lista siguiente describe la aplicacin criterios de cundo se debe utilizar la vinculacin dinmica en tiempo de carga y cundo se debe utilizar el tiempo de ejecucin vinculacin dinmica: Rendimiento de inicioSi el rendimiento de inicio de la aplicacin es importante, que debe utilizar la vinculacin dinmica en tiempo de ejecucin.

Facilidad de usoEn la vinculacin dinmica en tiempo de carga, son las funciones DLL exportadas al igual que las funciones locales. Ello resulta ms fcil para llamar a estos funciones.

Lgica de la aplicacinEn la vinculacin dinmica en tiempo de ejecucin, una aplicacin puede bifurcar a cargar mdulos diferentes segn sea necesario. Esto es importante cuando se desarrolla versiones de varios idiomas.

Vinculacin dinmica en tiempo de ejecucin

La lista siguiente describe los criterios de aplicacin para la vinculacin dinmica en tiempo de carga de uso y cundo utilizar la vinculacin dinmica en tiempo de ejecucin:BOOL APIENTRY DllMain(

HANDLE hModule,// Handle to DLL module

DWORD ul_reason_for_call,// Reason for calling function

LPVOID lpReserved ) // Reserved

{

switch ( ul_reason_for_call )

{

case DLL_PROCESS_ATTACHED:

// A process is loading the DLL.

break;

case DLL_THREAD_ATTACHED:

// A process is creating a new thread.

break;

case DLL_THREAD_DETACH:

// A thread exits normally.

break;

case DLL_PROCESS_DETACH:

// A process unloads the DLL.

break;

}

return TRUE;

}

Cuando la funcin de punto de entrada, devuelve un valorFALSE, la aplicacin no se iniciar si est utilizando el tiempo de carga vinculacin dinmica. Si utiliza vinculacin dinmica en tiempo de ejecucin, slo la persona No se cargar la DLL.

Slo debe realizar la funcin de punto de entrada simple las tareas de inicializacin y no debe llamar a cualquier otro de terminacin o cargar el archivo DLL funciones. Por ejemplo, en la funcin de punto de entrada, debera no directamente o indirectamente, llame a la funcinLoadLibraryo la funcinLoadLibraryEx. Adems, no debe llamar la funcinFreeLibrarycuando el proceso est finalizando.

NotaEn las aplicaciones multiproceso, asegrese de que dicho acceso al archivo DLL global de datos est sincronizado (seguro para subprocesos) para evitar la corrupcin de datos posibles. A hacer esto, utilice TLS para proporcionar datos nicos para cada subproceso.El punto de entrada DLL

Para exportar funciones DLL, puede agregar una palabra clave de la funcin la DLL exporta funciones o crear un archivo de definicin (.def) del mdulo que se enumeran las funciones DLL exportadas.

Para exportar las funciones del archivo DLL, puede agregar una palabra clave de la funcin a las funciones exportadas del archivo DLL o crear un archivo de definicin (.def) del mdulo que se enumera las funciones exportadas del archivo DLL.__declspec (dllexport)Para utilizar una palabra clave de la funcin, debe declarar cada funcin que se desea exportar con la siguiente palabra clave:__declspec (dllexport)Normalmente, utilizara un archivo de encabezado que tiene una instruccin dedefiniry una instruccinifdefpara separar la declaracin de exportacin y la importacin declaracin.

Normalmente, se utilizara un archivo de encabezado que tiene una declaracin dedefiniry una instruccinifdefpara separar la declaracin de exportacin y la instruccin de importacin.// SampleDLL.def

//

LIBRARY "sampleDLL"

EXPORTS

HelloWorld

Exportar funciones de archivos DLL

Tambin puede utilizar un archivo de definicin de mdulo para declarar funciones DLL exportadas.Cuando se utiliza un archivo de definicin de mdulo, no es necesario agregar la palabra clave function a las funciones exportadas del archivo DLL.En el archivo de definicin de mdulo, declare la instruccin debibliotecay lasexportacionesdel archivo DLL.El cdigo siguiente es un ejemplo de un archivo de definicin.

El siguiente cdigo es un ejemplo de un archivo DLL que se cre en Visual C++ mediante elBiblioteca de vnculos dinmicos Win32tipo de proyecto.// SampleDLL.cpp

//

#include "stdafx.h"

#define EXPORTING_DLL

#include "sampleDLL.h"

BOOL APIENTRY DllMain( HANDLE hModule,

DWORD ul_reason_for_call,

LPVOID lpReserved

)

{

return TRUE;

}

void HelloWorld()

{

MessageBox( NULL, TEXT("Hello World"), TEXT("In a DLL"), MB_OK);

}

// File: SampleDLL.h

//

#ifndef INDLL_H

#define INDLL_H

#ifdef EXPORTING_DLL

extern __declspec(dllexport) void HelloWorld() ;

#else

extern __declspec(dllimport) void HelloWorld() ;

#endif

#endif

El cdigo siguiente es un ejemplo de un archivo DLL que se cre en Visual C++ con el tipo de proyecto deBiblioteca de vnculos dinmicos Win32.// SampleApp.cpp

//

#include "stdafx.h"

#include "sampleDLL.h"

int APIENTRY WinMain(HINSTANCE hInstance,

HINSTANCE hPrevInstance,

LPSTR lpCmdLine,

int nCmdShow)

{

HelloWorld();

return 0;

}

El cdigo siguiente es un ejemplo de un proyecto deAplicacin Win32que llama a la funcin exportada del archivo DLL en la DLL SampleDLL.

En la vinculacin dinmica en tiempo de ejecucin, utilice cdigo similar al el siguiente cdigo para llamar a la SampleDLL.dll exporta la funcin DLL....

typedef VOID (*DLLPROC) (LPTSTR);

...

HINSTANCE hinstDLL;

DLLPROC HelloWorld;

BOOL fFreeDLL;

hinstDLL = LoadLibrary("sampleDLL.dll");

if (hinstDLL != NULL)

{

HelloWorld = (DLLPROC) GetProcAddress(hinstDLL, "HelloWorld");

if (HelloWorld != NULL)

(HelloWorld);

fFreeDLL = FreeLibrary(hinstDLL);

}

...

En vinculacin dinmica en tiempo de ejecucin, se utiliza cdigo similar al siguiente cdigo para llamar a la SampleDLL.dll exporta la funcin DLL.1. La carpeta de aplicacin

2. La carpeta actual

3. La carpeta de sistema de Windows

NotaLa funcinGetSystemDirectorydevuelve la ruta de acceso del sistema Windows carpeta.

4. La carpeta de Windows

NotaLa funcinGetWindowsDirectorydevuelve la ruta de acceso de la carpeta de Windows.

Archivo DLL de muestra y aplicacin

Al compilar y vincular la aplicacin SampleDLL, el sistema operativo Windows busca la DLL SampleDLL en las ubicaciones siguientes en este orden:

Con la introduccin de Microsoft .NET y la de.NET Framework, la mayora de los problemas asociados con los archivos DLL se han eliminado mediante el uso de ensamblados.Un ensamblado es una unidad lgica de funcionalidad que se ejecuta bajo el control de .NET common language runtime (CLR).Fsicamente, existe un ensamblado como un archivo .dll o como un archivo .exe.Sin embargo, internamente un ensamblado es muy diferente de una DLL de Win32 de Microsoft. Nombre del ensamblado

Informacin de versin

Informacin de referencia cultural

Informacin sobre nombre seguro

La lista de ensamblados de archivos

Informacin de referencia de tipo

Informacin de ensamblado que se hace referencia y dependientes

Un archivo de ensamblado contiene un manifiesto de ensamblado, metadatos, cdigo de lenguaje intermedio (MSIL) de Microsoft y otros recursos.El manifiesto del ensamblado contiene los metadatos del ensamblado que proporciona toda la informacin necesaria para un ensamblado se autodescriptivo.Se incluye la siguiente informacin en el manifiesto del ensamblado:

El cdigo MSIL que se encuentra en el ensamblado no se puede ejecutar directamente.En su lugar, la ejecucin de cdigo MSIL se administra a travs de CLR.De manera predeterminada, cuando se crea un ensamblado, el ensamblado es privado para la aplicacin.Para crear un ensamblado compartido requiere que asignar un nombre seguro al ensamblado y, a continuacin, publicar el ensamblado en la cach de ensamblados global. AutodescriptivosCuando se crea un ensamblado, toda la informacin que es necesario para el CLR para ejecutar el ensamblado est contenido en el manifiesto del ensamblado. El manifiesto del ensamblado contiene una lista de los ensamblados dependientes. Por lo tanto, el CLR puede mantener un conjunto coherente de ensamblados que se utilizan en la aplicacin. En archivos DLL de Win32, no se puede mantener la coherencia entre un conjunto de Archivos DLL que se utilizan en una aplicacin al utilizar archivos DLL compartidos.

Control de versionesEn un manifiesto de ensamblado se registra la informacin de versin y aplicado por el CLR. Adems, las directivas de versin le permiten aplicar uso especfico de la versin. En archivos DLL de Win32, no se puede aplicar control de versiones mediante la sistema operativo. En su lugar, debe asegurarse de que los archivos DLL son con versiones anteriores es compatible.

Implementacin de Side-by-sideEnsamblados admiten la implementacin de side-by-side. Una aplicacin Puede utilizar una versin de un ensamblado, y otra aplicacin puede utilizar una diferente versin de un ensamblado. A partir de Windows 2000, la implementacin de side-by-side es compatible con la localizacin de archivos DLL en la carpeta de la aplicacin. Adems, Windows Proteccin de archivos impide las DLL del sistema sobrescrito o reemplazado por un agente no autorizado.

Aislamiento y autocontencinPuede ser una aplicacin que se desarrolla utilizando un ensamblado independientes y aisladas de otras aplicaciones que se ejecutan en el equipo. Esta caracterstica le ayuda a crear las instalaciones de impacto cero.

EjecucinUn ensamblado se ejecuta bajo los permisos de seguridad que se proporcionado en el ensamblado de manifiesto y que estn controlados por el CLR.

Independiente del lenguajeUn ensamblado se puede desarrollar utilizando uno de los admite los lenguajes de. NET. Por ejemplo, puede desarrollar un ensamblado de Microsoft Visual C# y, a continuacin, utilice el ensamblado en Microsoft Visual Basic .NET proyecto.

Los compiladores introducen las medidas adicionales de compilar el cdigo fuente (que es legible por humanos) en cdigo objeto (que es legible por mquinas). Este paso adicional puede parecer un inconveniente, pero los programas compilados correr muy rpido porque la tarea que consume tiempo de traducir el cdigo fuente en lenguaje de mquina ya se ha hecho una vez, en tiempo de compilacin. Debido a la traduccin ya est hecho, no es necesario cuando se ejecuta el programa.

Otra ventaja de los lenguajes compilados como C ++ es que se puede distribuir el programa ejecutable a las personas que no cuentan con el compilador. Con un lenguaje interpretado, debe tener el intrprete para ejecutar el programa.

La necesidad de Solucin de problemas

Las computadoras son herramientas utilizadas por las personas que estn ms interesados en la solucin de sus problemas de negocios que luchan con el equipo.

Irnicamente, mientras los programas se hacen ms fciles para este nuevo pblico a usar, los propios programas se vuelven mucho ms sofisticados y complejos. Atrs han quedado los das en que los usuarios escriben comandos crpticos en mensajes esotricos, slo para ver una corriente de datos en bruto. Programas actuales utilizan sofisticados " interfaces fciles de usar " la participacin de mltiples ventanas, mens, cuadros de dilogo y la gran cantidad de metforas con las que todos nos hemos hecho familiar.Con el desarrollo de la Web, las computadoras entraron en una nueva era de la penetracin en el mercado; ms personas estn utilizando los ordenadores que nunca, y sus expectativas son muy altas. La facilidad con la que la gente puede utilizar la Web tambin ha aumentado las expectativas. No es raro que las personas esperan que los programas se aprovechan de la Web y lo que tiene que ofrecer.

En los ltimos aos, las aplicaciones se han expandido a diferentes dispositivos tambin. Ya no es un PC de escritorio el nico objetivo serio para las aplicaciones. Ms bien, los telfonos mviles, asistentes digitales personales (PDA), Tablet PCs y otros dispositivos son objetivos vlidos para aplicaciones modernas.

En los pocos aos transcurridos desde la primera edicin de este libro, los programadores han respondido a las demandas de los usuarios, y, por lo tanto, sus programas se han convertido en ms grande y ms compleja. La necesidad de tcnicas de programacin para ayudar a gestionar esta complejidad se ha manifestado.

A medida que cambian los requisitos de programacin, los dos idiomas y las tcnicas utilizadas para escribir programas evolucionan para ayudar a los programadores a gestionar la complejidad. Aunque la historia completa es fascinante, este libro slo se centra brevemente en la parte clave de esta evolucin: la transformacin de la programacin de procedimiento a la programacin orientada a objetos.Programacin de procedimiento, estructurado y orientado a objetosHasta hace poco, se pensaba que los programas de ordenador como una serie de procedimientos que actuaron en los datos. Un procedimiento, tambin llamado una funcin o un mtodo, es un conjunto de instrucciones especficas ejecutado una tras otro. Los datos eran totalmente distintos de los procedimientos, y el truco en la programacin era hacer un seguimiento de lo funciones que llaman otras funciones, por lo que los datos se ha cambiado. Para dar sentido a esta situacin potencialmente confusa, se cre la programacin estructurada.

La principal idea detrs de la programacin estructurada es la idea de dividir y conquistar. Un programa de ordenador puede ser considerado como que consiste en un conjunto de tareas. Cualquier tarea que es demasiada compleja para ser descrito simplemente se divide en el conjunto de tareas ms pequeos que lo componen, hasta que las tareas son suficientemente pequeas y autnomas que estn cada vez mas fciles de entender.

A modo de ejemplo, el clculo del salario promedio de todos los empleados de una empresa es una tarea bastante compleja. Puede, sin embargo, que se descomponen en las siguientes subtareas:

1. Cuente el nmero de empleados que tiene.

2. Averige lo que gana cada empleado.

3. Total de todos los salarios.

4. Divida el total por el nmero de empleados que tiene.

Con un total de los salarios se puede dividir en los siguientes pasos:

1. Obtener el registro de cada empleado.

2. Acceder al salario.

3. Agregue el sueldo al total acumulado.

4. Obtener registro del siguiente empleado.A su vez, la obtencin de registro de cada empleado puede desglosarse en los siguientes:

1. Abra el archivo de los empleados.

2. Ir al registro correcto.

3. Lea los datos.La programacin estructurada sigue siendo un enfoque de gran xito para hacer frente a problemas complejos. A fines de 1980, sin embargo, algunas de las deficiencias de la programacin estructurada se haban convertido en demasiado claras.En primer lugar, un deseo natural es pensar en los datos (registros de empleados, por ejemplo) y lo que puede hacer con esos datos (ordenar, editar, etc.) como una sola idea. Desafortunadamente, los programas estructurados son estructuras de datos separadas de las funciones que los manipulan, y no hay manera natural de datos, de grupo con sus funciones asociadas dentro de la programacin estructurada. La programacin estructurada se llama a menudo la programacin de procedimiento debido a su enfoque en los procedimientos (en lugar de en "objetos").Segundo lugar los programadores frecuentemente se encuentran con la necesidad de volver a utilizar las funciones. Pero las funciones que trabajaron con un tipo de dato a menudo no poda ser utilizadas con otros datos, lo que limita los beneficios obtenidos.

Programacin Orientada a Objetos (OOP)

Programacin orientada a objetos responde a estos requisitos de programacin, proporcionando tcnicas para la gestin de enorme complejidad, lograr la reutilizacin de componentes de software y datos de acoplamiento con las tareas que manipulan esos datos.La esencia de la programacin orientada a objetos es modelar "objetos" (es decir, cosas o conceptos) en lugar de "datos". Los objetos modelo podra estar en widgets de la pantalla, como botones y cuadros de lista, o que podra ser real los objetos del mundo, tales como clientes, bicicletas, aviones, gatos y agua.Los objetos tienen caractersticas, tambin llamadas propiedades o atributos, como la edad, rpido, amplio, negro, o mojado. Tambin tienen la capacidad, tambin llamadas operaciones o funciones, como la compra, acelerar, vuelan, ronroneo, o burbuja. Este es el trabajo de la programacin orientada a objetos para representar estos objetos en el lenguaje de programacin.Programacin orientada a objetos

C++ esta orientada a programacin con direccion u orientacin a objetos

Los tres pilares del desarrollo son

Encapsulacin

Herencia

Polimorfismo

Encapsulacin

La propiedad de ser una unidad independiente se llama encapsulacin. Con la encapsulacin, usted puede lograr la ocultacin de datos. Ocultacin de datos es la caracterstica de gran valor que un objeto puede ser utilizado sin que el usuario sepa o se preocupe de cmo funciona internamente. Del mismo modo que se puede utilizar un refrigerador sin saber cmo funciona el compresor, se puede utilizar un objeto bien diseado sin necesidad de conocer su funcionamiento interno. Se pueden hacer cambios a esos funcionamientos sin afectar la operacin del programa, siempre y cuando se cumplan las especificaciones; al igual que el compresor en un refrigerador puede ser sustituido por otro de diseo similar.

C ++ soporta encapsulacin a travs de la creacin de tipos definidos por el usuario, llamados clases. Despus de haber sido creado, una clase bien definida acta como una entidad totalmente encapsulada y se utiliza como una unidad completa . El funcionamiento interno de la clase se pueden ocultar. Los usuarios de una clase bien definida no necesitan saber cmo funciona la clase; slo hay que saber cmo usarlo.

Herencia y ReciclarCuando los ingenieros de Acme Motors quieren construir un coche nuevo, tienen dos opciones: Se puede empezar desde cero , o se puede modificar un modelo existente . Tal vez su modelo estrella es casi perfecto, pero quieren aadir un turbocompresor y una transmisin de seis velocidades.

El ingeniero jefe prefiere no empezar desde cero , pero en lugar de decir , " Vamos a construir otra estrella , pero vamos a aadir estas capacidades adicionales. Llamaremos al nuevo modelo un Quasar". Un Quasar es una especie de estrella, sino uno especializado con nuevas caractersticas. (Segn la NASA, los qusares son cuerpos muy luminosos que emiten una cantidad asombrosa de energa.).

C ++ soporta herencia. Con la herencia, se puede declarar un nuevo tipo que es una extensin de un tipo existente. Esta nueva subclase se dice que deriva del tipo existente y, a veces se llama un tipo derivado. Si el Quasar se deriva de la estrella y , por lo tanto , hereda todas las cualidades de la estrella , entonces los ingenieros pueden aadir a ellos o modificarlos segn sea necesario. Herencia y su aplicacin en C ++ se discuten en el Da 12, "Implementacin de Herencia", y el Da 16 , "Advanced herencia . "

Polimorfismo

C ++ soporta la idea de que diferentes objetos hacen " lo correcto " a travs de lo que se llama polimorfismo funcin y polimorfismo clase. Poli significa muchos, y metamorfosis significa forma. El polimorfismo se refiere al mismo nombre de tomar muchas formas, y se discute en el da 10, "Trabajo con funciones avanzadas ", y el da 14, " polimorfismo".

Como Evoluciono C++

Como anlisis orientado a objetos, diseo y programacin comenz a hacerse popular, Bjarne Stroustrup tom el lenguaje ms popular para el desarrollo de software comercial, C, y la extendi para proporcionar las caractersticas necesarias para facilitar la programacin orientada a objetos.

Si bien es cierto que C ++ es un superconjunto de C y que prcticamente cualquier programa de C legal es un programa legal C ++, el salto de C a C ++ es muy significativo. C ++ se benefici de su relacin con C durante muchos aos porque los programadores de C podran facilitar en el uso de C ++. Para conseguir realmente el beneficio completo de C ++, sin embargo , muchos programadores descubrieron que tenan que desaprender mucho de lo que saban y aprender una nueva forma de conceptualizar y resolver problemas de programacin .

Debo aprender C primero

Programacin C se basa en los conceptos de programacin estructurada; C ++ se basa en la programacin orientado a objeto. Si aprendes C en primer lugar, tendrs que " desaprender " los malos hbitos fomentados por C.

C ++ , Java y C #

C ++ es uno de los idiomas predominantes para el desarrollo de software comercial. En los ltimos aos , Java ha cuestionado que la dominacin ; Sin embargo , muchos de los programadores que dejaron C ++ para Java han comenzado recientemente a regresar. En cualquier caso, las dos lenguas son tan similares que para aprender uno es para aprender 90 por ciento de la otra.

C # es un lenguaje ms reciente desarrollada por Microsoft para la plataforma .NET . C # utiliza esencialmente la misma sintaxis que en C ++ , y aunque las lenguas son diferentes en algunas maneras importantes , aprendiendo C ++ proporciona la mayor parte de lo que usted necesita saber acerca de C #. Ms adelante Si usted decide aprender C #, el trabajo que hace en C ++ ser una excelente inversin.

Extensiones administradas de Microsoft para C ++ (Microsofts Managed Extensions to C++)

Con .NET , Microsoft introdujo Extensiones a C ++ ("C ++ administrado " ) gestionado . Esta es una extensin del lenguaje C ++ para que pueda utilizar la nueva plataforma y bibliotecas de Microsoft . Ms importante an, de C ++ permite que un programador de C ++ para tomar ventaja de las caractersticas avanzadas del entorno .NET . Si usted decide desarrollar especficamente para la plataforma .NET , tendr que ampliar su conocimiento del estndar C ++ para

incluir estas extensiones al lenguaje .

Estndar ANSI

El Comit de Normas Acreditadas , que opera bajo los procedimientos de la American National Standards Institute (ANSI ) , ha creado un estndar internacional para C ++ .

El estndar de C ++ tambin se conoce como la ISO ( Organizacin Internacional de Normalizacin ) Estndar, el NCITS (Comit Nacional de Normas de Tecnologa de Informacin ) Estndar, el X3 ( el antiguo nombre de NCITS ) Standard , y el estndard ANSI / ISO . Este libro sigue refirindose a ANSI cdigo estndar porque ese es el trmino que se utiliza con mayor frecuencia.

ANSI se pronuncia generalmente antsi pero con la t algo silenciosa

El estndar ANSI es un intento de asegurar que C ++ es porttil asegurando , por ejemplo, que conforme con el estndar ANSI cdigo se escribe para el compilador de Microsoft compilar sin errores utilizando un compilador de cualquier otro proveedor. Adems, debido a que el cdigo de este libro es compatible con ANSI , debe compilar sin errores en un Macintosh , un cuadro de Windows , o un Alfa.

Para la mayora de los estudiantes de C ++ , el estndar ANSI es invisible . La versin ms reciente de la norma ISO / IEC 14882-2003 . La versin anterior , la norma ISO / IEC 14882-1998 , era estable y todos los grandes fabricantes apoyan. Todo el cdigo en la presente edicin de este libro ha sido comparado con el estndar para asegurarse de que es compatible .

Tenga en cuenta que no todos los compiladores son totalmente compatibles con el estndar . Adems , algunas reas de la norma se han dejado abiertas al proveedor compilador, que no se puede confiar para compilar u operar de la misma manera cuando se compila con diversas marcas de compiladores.

Preparacin para programar

C ++, tal vez ms que otros idiomas, exige que se disee el programa antes de escribirla. Los problemas triviales, como las referidas en los primeros das de este libro, no requieren mucho diseo. Los problemas complejos, sin embargo, como los programadores profesionales tienen el desafo de todos los das, no se requiere el diseo y la ms completo del diseo, lo ms probable es que el programa va a resolver los problemas que est diseado para resolver, en tiempo y en presupuesto. Un buen diseo tambin lo convierte en un programa que es relativamente libre de errores y fcil de mantener. Se ha estimado que un 90 por ciento del costo del software es el costo combinado de depuracin y el mantenimiento. En la medida en que un buen diseo puede reducir esos costes, puede tener un impacto significativo en el costo de la lnea de fondo del proyecto.

La primera pregunta que hay que preguntarse cuando se prepara para disear cualquier programa es: "Cul es el problema que estoy tratando de resolver?" Cada programa debe tener un objetivo claro y bien articulado, y usted encontrar que incluso los programas ms simples en este libro lo hace.

La segunda pregunta que todo buen programador pregunta es, "Puede esto ser realizado sin recurrir a la escritura de software nuevo?" Reutilizar un viejo programa, utilizando lpiz y papel, o la compra de software fuera de la plataforma es a menudo una mejor solucin a un problema que escribir algo nuevo. El programador que pueden ofrecer estas alternativas nunca sufrir de falta de trabajo; encontrar soluciones menos costosas a los problemas de hoy en da siempre genera nuevas oportunidades despus.El proceso de comprender totalmente el problema (anlisis ) y la creacin de un plan para una solucin ( diseo) es la base necesaria para la escritura de una aplicacin comercial de clase mundial.

Entorno de Desarrollo

Este libro hace la suposicin de que el compilador tiene un modo en el que se puede escribir directamente a una " consola " ( por ejemplo , una ventana MS DOS / Comando o una ventana de shell ) , sin la preocupacin de un entorno grfico, tales como los de windows o en Macintosh. Busque una opcin como consola o fcil ventana o consulte la documentacin del compilador.

Este libro hace la suposicin de que el compilador tiene un modo en el que se puede escribir directamente a una " consola " ( por ejemplo , una ventana MS DOS / Comando o una ventana de shell ) , sin la preocupacin de un entorno grfico, tales como los de windows o en Macintosh. Busque una opcin como consola o fcil ventana o consulte la documentacin del compilador.

Su compilador podra ser parte de un entorno de desarrollo integrado ( IDE ) o podra tener su propio editor de texto de cdigo fuente incorporada, o puede que est utilizando un editor de texto comerciales o procesador de texto que pueda producir archivos de texto . Lo importante es que todo lo que usted escribe su programa , debe guardar los archivos simples de texto sin formato , sin comandos de procesamiento de textos incrustados en el texto. Los ejemplos de editores de seguros incluyen el Notepad de Windows , el comando DOS Edit, Breve , Epsilon , Emacs y vi . Muchos procesadores comerciales de palabras , como WordPerfect , Word , y docenas de otros, tambin ofrecen un mtodo para guardar archivos de texto simple .

Los archivos que usted crea con su editor se denominan archivos de origen, y para C ++ por lo general se denominan con la extensin .cpp , .cp o .c . En este libro los nombres de todos los archivos de cdigo fuente con la extensin .cpp , pero comprueba tu compilador para lo que necesita .

La mayora de los compiladores de C ++ no les importa lo que la extensin le da a su cdigo fuente, pero si no se especifica lo contrario, el uso de muchos .cpp por defecto. Tenga cuidado, sin embargo; algunos compiladores tratan a los archivos .c como cdigo C y archivos .cpp como cdigo C ++.

Una vez ms, por favor revise la documentacin del compilador. En cualquier caso, es ms fcil para que otros programadores que necesitan para entender sus programas si utiliza constantemente .cpp para archivos de cdigo fuente de C ++.HACER

NO utilizar un simple editor de texto para crear su cdigo fuente, o usar el editor incorporado que viene con su compilador.

NO guardar sus archivos con el .c, .cp, o la extensin .cpp. Se recomienda la extensin .cpp.

S, verifique la documentacin para obtener detalles acerca de su compilador y enlazador para asegurarse de que sabe cmo compilar y vincular sus programas.NO HacerNO use un procesador de textos que permita ahorrar caracteres de formato especiales. Si usted hace uso de un procesador de texto, guarde el archivo como texto ASCII.

NO use una extensin .c si su compilador trata archivos tales como el cdigo C en lugar de cdigo C ++.Proceso Para Crear un programa

El primer paso en la creacin de un nuevo programa es escribir los comandos apropiados (declaraciones) en un archivo de origen. Aunque el cdigo fuente de su archivo es un tanto crptica, y cualquier persona a quien no conoce C ++ tendr dificultades para entender para lo que es, todava est en lo que llamamos forma legible. Su archivo de cdigo fuente no es un programa y que no se puede ejecutar, o correr, como un dato ejecutable o archivo de programa.Creacin de un archivo de objetos con el compilador

Para activar su cdigo fuente en un programa, se utiliza un compilador. Cmo se invoca el compilador y cmo lo dices dnde encontrar el cdigo fuente vara de compilador compilador; comprobar su documentacin.Despus de compilar el cdigo fuente, se produce un fichero objeto. Este archivo se nombra a menudo con la extensin .obj o .o. Esto todava no es un programa ejecutable, sin embargo. Para convertir esto en un programa ejecutable, debe ejecutar el enlazador.Cracion de archivo ejecutable con un enlazador

Programas en C ++ son tpicamente creados mediante la vinculacin de uno o ms ficheros objeto (.obj o archivos .o) con una o ms bibliotecas. Una biblioteca es una coleccin de archivos enlazables que se suministran con el compilador, que ha adquirido por separado, o que ha creado y compilado. Todos los compiladores de C ++ vienen con una biblioteca de funciones tiles y clases que se pueden incluir en su programa. Vas a aprender ms acerca de las funciones y clases con gran detalle en los prximos das.

Los pasos para crear un archivo ejecutable son

1. Cree un archivo de cdigo fuente con una extensin .cpp.

2. Compilar el cdigo fuente en un archivo objeto con la extencion .obj o .o.

3. Vincular el archivo objeto con las biblioteca necesarias para producir un programa ejecutable.El ciclo de desarrollo

Si cada programa funcion la primera vez que lo intent, este sera el ciclo de desarrollo completo: Escriba el programa, compilar el cdigo fuente, vincular el programa y ejecutarlo.

Por desgracia, casi todos los programas, no importa lo trivial, puede y va a tener errores.

Algunos errores hacen que la compilacin falle, algunos causan el enlace falle, y algunos aparecen slo cuando se ejecuta el programa (estos son a menudo llamados "bugs").

Independientemente del tipo de error que encuentre, debe arreglarlo, y que implica la edicin de su cdigo fuente, recompilar y volver a vincular, y luego volver a ejecutar el programa. Este ciclo est representado en la figura 1.1, que los diagramas de los pasos en el ciclo de desarrollo.Hello.cpp El primer programa en C++

Escriba el cdigo fuente muestrado en el listado 1.1 directamente en su editor, exactamente como se muestra (con exclusin de la numeracin de lneas). Una vez que est seguro de que ha introducido correctamente, guarde el archivo, compilarlo, vincularlo, y ejecutarlo. Si todo se ha hecho correctamente, imprime las palabras Hola Mundo para su pantalla. No se preocupe demasiado acerca de cmo funciona; esto es realmente slo para usted se sienta cmodo con el ciclo de desarrollo. Todos los aspectos de este programa est cubierto durante el prximo par de das.Escriba el cdigo fuente muestra en el listado 1.1 directamente en su editor, exactamente como se muestra (con exclusin de la numeracin de lneas). Una vez que est seguro de que ha introducido correctamente, guarde el archivo, compilarlo, vincularlo, y ejecutarlo. Si todo se ha hecho correctamente, imprime las palabras Hola Mundo para su pantalla. No se preocupe demasiado acerca de cmo funciona; esto es realmente slo para usted cmodo con el ciclo de desarrollo. Todos los aspectos de este programa est cubierto durante el prximo par de das. La siguiente lista contiene nmeros de lnea a la izquierda. Estos nmeros son para referencia en el libro. No deben ser escritos en su editor. Por ejemplo, en la lnea 1 del listado 1.1, deberas insertar: #include

LISTING 1.1 HELLO.cpp, the Hello World Program 1: #include 2: 3: int main() 4: { 5: std::cout