La modularidad se refiere al proceso de dividir un objeto en
piezas ms pequeas, o mdulos, para que algn objetivo sea ms fcil de conseguir. Permite estructurar un objeto para que sea fcil reutilizar sus componentes. La mayora de los sistemas complejos son modulares. Estn construidos combinando componentes o paquetes, de funcionamiento ms sencillo. Una adecuada modularizacin de un sistema complejo tambin ayuda a manejar su complejidad. Dividir las cosas en piezas ms pequeas y ms sencillas de entender, hace que un sistema grande sea ms sencillo de comprender.
El diseo de software orientado a objetos elabora el software como un modelo muy prximo a la forma en que pensamos e interactuamos en el mundo real. El diseo y la programacin orientada a objetos, se ha mostrado particularmente prometedor para ayudar a los desarrolladores de software a lograr los objetivos de fiabilidad, rendimiento, adaptabilidad, comprensibilidad y reutilidad. Un paso clave en el desarrollo de un sistema complejo usando diseo orientado a objetos es determinar los objetos que constituyen el sistema. El diseo y programacin orientado a objetos es un paradigma de la programacin segn el cual un sistema software se modela como un conjunto de objetos que interaccionan entre s.
Objeto: es un ente o una cosa, un objeto puede contener otros objetos.
Atributos: son las diferentes cualidades de un objeto.
La abstraccin es el proceso de aislar los aspectos esenciales inherentes a un objeto al tiempo que se ignoran los detalles irrelevantes o no esenciales.
La encapsulacin u ocultamiento de la informacin es el proceso de separar los aspectos externos de un objeto, que pueden ser vistos o accedidos por otros objetos, de los detalles de implementacin interna, que deberan estar ocultos para otros objetos.
Una herencia de jerarqua es una forma de organizar un conjunto de abstracciones desde lo ms general a lo particular.
En C++, una abstraccin se construye creando una clase. Una clase encapsula las propiedades y comportamiento de un objeto.
Los miembros de datos de una clase son las propiedades o atributos de la clase. Los miembros de tipo funcin de una clase son el comportamiento de la clase.
Una clase base, o superclase, es aquella de la que se pueden derivar otras clases ms especializadas. Una clase derivada o subclase, hereda propiedades de una clase base.
El polimorfismo es la capacidad de asumir diferentes formas. En un lenguaje orientado a objetos, se proporciona el polimorfismo permitiendo que un mensaje, o miembro de tipo funcin, signifique cosas distintas dependiendo del tipo de objeto que recibe el mensaje.
La instanciacin es el proceso de crear un objeto concreto a partir de la abstraccin clase. Una instancia es un objeto.
Un lenguaje de alto nivel consiste en una serie de instrucciones, que son similares al ingls y a la notacin matemtica comn. Las instrucciones en lenguaje de tpica en un lenguaje de alto nivel equivalen a muchas instrucciones de cdigo de mquina.
Ventajas de programar en lenguaje de alto nivel: El tiempo de formacin de los programadores es relativamente corto comparado con otros lenguajes. La escritura de programas se basa en reglas sintcticas similares a los lenguajes humanos. Las modificaciones y puestas a punto de los programas son ms fciles. Reduccin del costo de desarrollo de los programas. Transportabilidad.
Desventajas de programar en lenguaje de alto nivel: Incremento del tiempo de puesta a punto, al necesitarse diferentes traducciones del programa fuente para conseguir el programa definitivo. No se aprovechan los recursos internos de la computadora, que se explotan mucho mejor en lenguajes de mquina y lenguajes ensambladores. El tiempo de ejecucin de los programas es mucho mayor.
Cuando programe en lenguaje de alto nivel, el sistema debe traducir sus instrucciones a cdigo de mquina para que pueda ser entendido por la CPU. Hay dos tipos de programas del sistema que pueden emplearse para este propsito: Un compilador y un intrprete. Un compilador es un programa que acepta un programa en lenguaje de alto nivel y traduce todo el programa a cdigo de mquina al mismo tiempo, antes de que sea ejecutado por la CPU. Por otra parte, un intrprete traduce y ejecuta una instruccin de alto nivel a la vez. Una vez que se ejecuta una instruccin dada, el intrprete traduce y ejecuta la siguiente instruccin y as sucesivamente, hasta que el programa completo ha sido ejecutado. Aunque los intrpretes tienen sus ventajas, especialmente durante la etapa de depuracin, C++ emplea un compilador.
El lenguaje C++ es una extensin del lenguaje C. Bjarne Stroustrup de Bell Labs mejor el lenguaje C a principio de los aos ochenta adicionando la capacidad de la programacin orientada a objetos(POO). La programacin orientada a objetos le permite desarrollar programas complejos utilizando constructores ms simples, llamados objetos, que pueden comunicarse mediante intercambio de mensajes. Los objetos son, en esencia, componentes de software reutilizables que simulan elementos reales.
Cuando desarrollan software, los programadores realizan las operaciones de editar un programa, compilarlo, enlazarlo con otros mdulos ya compilados y con bibliotecas, y por ltimo, cargarlo y ejecutarlo repetidamente. Cualquier programa en C es tambin un programa C++, sin embargo, lo opuesto no es cierto.
El proceso conocido como ciclo de edicin/compilacin/ejecucin se muestra en la figura 1 que muestra las funciones bsicas de un compilador.
Figura 1
Nota:
El compilador acta como una interfaz entre su programa y la mquina. Una vez que se ha ingresado un programa C++ en el sistema usando el editor C++, el compilador traducir el programa a cdigo de mquina. Su programa C++ se conoce con el nombre de programa fuente y el programa en lenguaje de mquina que genera el compilador se llama programa objeto. Los programas fuente C++ generalmente tienen la extensin .cpp y el programa objeto correspondiente tiene la extensin .obj. El compilador C++ y el vinculador o enlazador (linker) traducen el programa fuente a cdigo de mquina que puede ejecutarse en la CPU
Los programas en C++ constan de partes llamadas clases y funciones. Es posible programar cada parte que necesite para formar un programa C++. Pero se pueden aprovechar las clases y funciones que existen en la biblioteca estndar de C++. Palabras reservadas en C++
Asm else operator throw auto enum prvate true bool explicit protected try break extern public typedef case false register typeid catch float reinterpret_cast typename char for return union class friend short unsigned const goto signed using const_cast if sizeof virtual continue inline static void default int static_cast volatile delete long struct wchart_t do mutable switch while doubl namespace template dynamic_cast new this
Identificador: es un nombre definido y con significado, dado por el programador. La regla para construir un identificador vlido es que debe ser un nombre vlido en C++ y no puede ser una palabra reservada. Ejemplos de identificadores vlidos en C++ son: impuesto, n, precio.
El identificador de la funcin principal es main( ). El identificador de la funcin principal es precedido por la palabra reservada void.
Los objetos constante y variable que se van a usar en un programa C++ se deben declarar o definir antes de que se utilicen en el programa. La razn por la que debemos declarar constantes y definir variables en un lenguaje es doble. Primero, el compilador debe conocer el valor de una constante antes de utilizarla y debe reservar las localizaciones de memoria para almacenar las variables. Segundo, el compilador debe conocer las clases de las constantes y variables para saber los atributos y comportamiento de tales objetos.
Declaracin: especifica el nombre y los atributos de un valor, pero no reserva almacenaje.
Definicin: es una declaracin que tambin reserva almacenaje. sta es la razn por la que se declaran objetos, constante y definimos objetos variable en C++. Una definicin introduce el nombre del objeto en el programa y especifica la clase del objeto.
Es recomendable incluir un comentario en la parte superior de su programa para explicar el propsito del mismo. Los comentarios en C++ se insertan usando doble diagonal hacia adelante ( // ). La doble diagonal le indica al compilador que ignore el resto de la lnea. La doble lnea diagonal puede aparecer en cualquier lugar de una lnea, cualquier cosa despus de // es ignorada por el compilador. Los comentarios dentro de los programas facilitan su lectura y mantenimiento.
El inicio del programa debe comentarse con el nombre del programador, la fecha en que fue escrito, la fecha en que el programa tuvo la ltima revisin, y el nombre de la persona que hizo la revisin. Se debe explicar el propsito del mismo, que incluye la definicin del problema y los algoritmos del programa. Esto proporciona una perspectiva general para cualquiera que desee depurar o darle mantenimiento al programa.
Estructura de un programa en C ++ :
// El comentario general del propsito del programa debe de ir aqu SECCIN DEL PREPROCESADOR #include <iostream.h> #include <nombreArchivo> SECCIN FUNCIN PRINCIPAL void main( void ) { // Empieza el bloque de la funcin principal } // Final del bloque de la funcin principal
En C++ siempre deber usar una serie de llaves, { }, para definir un bloque de cdigo. Una llave izquierda, {, debe seguir al identificador de la funcin principal antes que cualquier declaracin o enunciado. Esta llave define el inicio del bloque de la funcin principal y por lo general aparece directamente abajo de main( ). Una llave derecha, }. Se usa para definir el final del bloque de la funcin principal.
Si un programa se compone de varios archivos fuente, entonces la prctica comn es recoger todas las declaraciones de variables externas, prototipos de funciones y directivas #define para ese programa en un archivo aparte, denominado archivo de encabezado o archivo de cabecera (en estas lecciones los llamaremos indistintamente). Este archivo de encabezado puede entonces ser incluido en los archivos fuente usando la directiva del preprocesador #include.
Al usar archivos de encabezado de esta forma se garantiza que cada uno de los archivos fuente de un programa recibir el mismo conjunto de declaraciones y definiciones externas. El preprocesador reemplaza cualquier sentencia de la forma:
#include <nombreArchivo> (El preprocesador reemplaza cualquier sentencia con el contenido del archivo nombreArchivo).
Un formato alternativo es: #include "nombreArchivo" (La diferencia entre uno y otro formato es el orden en el que el preprocesador busca nombreArchivo)
Si el nombre del archivo de cabecera se incluye entre pico parntesis, se asume que es un archivo de encabezado estndar. Si el archivo de encabezado se incluye entre comillas, entonces se asume que el archivo es suministrado por el usuario.
Algunos de los archivos de encabezado estndar son los archivos iostream.h, iomanip. h, stdio.h, stdlib.h, math.h, string.h, etc.
No termine una declaracin al preprocesador con punto y coma,
El enunciado void main( void ) indica el inicio de su programa.
En un programa C++ deber usar las llaves izquierda y derecha ( { } ) para agrupar enunciados relacionados.
La seccin de enunciados de main ( ) es el cuerpo ejecutable principal del programa. Los enunciados del programa y las declaraciones, van ah. Cada enunciado ejecutable debe terminar con un punto y coma.
Debe declarar cualquier constante global antes de main( ). Las constantes globales son aquellas que se pueden acceder en cualquier punto del programa, a diferencia de las constantes locales, que slo se accedan en el bloque del programa en el que fueron definidos.
Los objetos constante y variable local se pueden declarar/definir en cualquier lugar en un bloque del programa siempre y cuando se declaren o definan antes de usarse.
Cuando crea un programa C++, su archivo fuente contendr enunciados. El orden en que aparecen los enunciados en su programa no es necesariamente el orden en el que se ejecutarn cuando corra el programa.
La palabra void se utiliza normalmente para especificar que una funcin no regresa un valor o que no transfiere alguno.
#include <iostream.h> le dice al preprocesador de C++ que incluya en el programa el archivo de encabezado de flujo de entrada/salida. Este archivo contiene informacin necesaria para compilar programas en los que se emplean cin y cout y los operadores << y >>. Se utiliza el objeto cout para visualizar informacin en la pantalla.
Las declaraciones de la constante global deben hacerse antes que main( ). Los objetos variable locales pueden definirse en cualquier lugar en el programa antes de usarlos, pero un buen estilo sugiere que se definan al inicio del bloque de la funcin en donde se utilizan.
Los objetos constante deben declararse globales tanto como sea posible, mientras que los objetos variable deben definirse como locales tanto como sea posible. Comando e instrucciones C++ (Gua de instrucciones y comandos de C++)