Introducción a clases en C++
|
|
- Juan Mendoza Castillo
- hace 7 años
- Vistas:
Transcripción
1 Introducción a clases en C++ Pablo Brusco Disclaimer: Este apunte no es autocontenido y fue pensado como un repaso de los conceptos, no para aprenderlos de aquí directamente. Los aportes básicos fueron extraidos de Savitch, Walter (2007): Resolución de problemas con C++. Ed. Pearson, México. PP Stroustrup, Bjarne (2000): The C++ Programming Language. Ed. Addison-Wesley, USA. 1. Introducción Hasta ahora, al momento de programar en C++ solo fue posible utilizar los tipos de datos predefinidos, como int, char, ofstream, etc. Pero bajo la especificación de problemas que utiliza tipos compuestos de datos, nos encontramos con la necesidad de contar con formas de representarlos. En C++, una de las maneras de hacerlo es a través de clases. 2. Definiciones 2.1. Definición de clases y funciones miembro Hay muchas definiciones posibles para el concepto de clase, pero mucha gente coincide en que una clase es un plano o prototipo que define variables y métodos comunes a todos los objetos de un cierto tipo. Un objeto es un componente de software que contiene variables y métodos y que es usado para modelar algún aspecto de la vida real. Es una abstracción de la realidad que encapsula variables permitiendo acceder a ellas únicamente a través de métodos 1. Por lo tanto, el estado de un objeto está representado por el contenido de sus variables y su comportamiento está definido por sus métodos. Tambíen, podemos decir que un objeto es la suma de su estado, su comportamiento y su identidad (todo objeto debería tener un identificador único). Función miembro es aquella que está declarada en ámbito de clase. Son similares a las funciones habituales, con la salvedad de que el compilador realizara el proceso de Decoración de nombre. es decir cambiara el nombre de la función añadiendo un identificador de la clase en la que est declarada. Además, las funciones miembro reciben implícitamente un parmetro adicional: El puntero this, que referencia al objeto que ejecuta la función. Estas funciones se invocan accediendo primero al objeto al cual refieren, con la sintaxis: miobjeto.mifuncionmiembro(). Entonces, dentro de un programa en C++, la definición de una clase debe ser una definición de tipo de datos que describa los tipos de valores que las variables pueden contener y también la naturaleza de las funciones miembro. En el programa del cuadro 1, se presenta un ejemplo de definición de clase. El tipo Circulo que se presenta ahí es una definición de clase para objetos cuyos valores son figuras geométricas como circulo de radio 2 en el origen del plano. En esta definición de Circulo, el radio se registra como un float y la posición como un conjunto de enteros. La clase 1 Quizás sea una definición un tanto purista, pero podemos tomarla por el momento 1
2 2.1 Definición de clases y funciones miembro 2 DEFINICIONES Circulo tiene una función miembro llamada imprimir, que no tiene argumentos y envía a la pantalla el valor del radio y la posición desde el origen. Vemos ahora como está constituida la clase Circulo. Por el momento hagamos caso omiso de la linea que contiene la palabra clave public. Esta línea simplemente dice que las variables y funciones miembro no tienen restricciones. Por otro lado, se ve claramente la estructura sintáctica que tiene una clase. Esto es, la palabra clave Class seguida de llaves y un punto y coma al final. Dentro de las llaves encontramos las variables de la clase (radio, posicionx y posiciony ) y la función imprimir. Las definiciones de las funciones aparecen en cualquier lugar (podemos mezclar las variables y las funciónes, pero siempre podemos convenir enumerar las funciones antes que las variables por ejemplo). Los objetos (es decir, variables) de un tipo de clase se declarar de la misma manera que las variables de los tipos predefinidos y que las variables de estructura. Cuadro 1 #include <iostream > using namespace std ; // programa para demostrar un ejemplo de c l a s e muy s e n c i l l o. class C i r c u l o public : void imprimir ( ) ; f l o a t r a d i o ; int posicionx ; int posiciony ; ; void C i r c u l o : : imprimir ( ) cout << C i r c u l o de r a d i o << r a d i o << en ( << posicionx <<, << posiciony << ) << endl ; int main ( ) C i r c u l o c i r c ; // d e c l a r a c i o n de 3 c i r c u l o s. C i r c u l o c i r c 1, c i r c 2 ; // se d e c l a r a n de l a misma manera que l a s v a r i a b l e s de t i p o s p r e d e f i n i d o s cout << E s c r i b a e l r a d i o d e l c i r c u l o : ; c i n >> c i r c. r a d i o ; cout << E s c r i b a l a p o s i c i o n en x d e l c i r c u l o : ; c i n >> c i r c. posicionx ; cout << E s c r i b a l a p o s i c i o n en y d e l c i r c u l o : ; c i n >> c i r c. posiciony ; cout << Usted i n g r e s o un c i r c u l o como e l s i g u i e n t e : << endl ; c i r c. imprimir ( ) ; i f ( c i r c. posicionx == c i r c. posiciony && c i r c. posicionx == 0) cout << Este c i r c u l o s e encuentra en e l o r i g e n de coordenadas ; Dialogo de ejemplo: Escriba el radio del circulo: 13 Escriba la posicion en x del circulo: 0 Escriba la posicion en y del circulo: 0 Usted ingreso un circulo como el siguiente: Circulo de radio 13 en (0,0) Este circulo se encuentra en el origen de coordenadas 2
3 2.2 Funciones de una clase 2 DEFINICIONES 2.2. Funciones de una clase Cuando se define una función miembro, la definición debe incluir el nombre de la clase, porque podría haber dos o más clases que tengan funciones con el mismo nombre. Es por eso que la funcion imprimir tiene el encabezado: void Circulo::imprimir() Quizás resulte raro que aparezca el nombre de la clase seguido de dos puntos, veamos la definición de este operador El operador punto y el de resolución de alcance. Se emplean con los nombres de miembros para especificar de qué cosa son miembros. Por ejemplo, supongamos que hemos declarado una clase llamada Circulo y declaramos un objeto llamado circ de la siguiente manera: Circulo circ; Usamos el operador punto para especificar un miembro del objeto circ. Por ejemplo, imprimir es una función de la clase Circulo; la siguiente llamda de función desplegara los valores de datos almacenados en el objeto circ: circ.imprimir(); Empleamos el operador de resolución de alcance :: para especificar el nombre de clase cuando damos la definición de una función void Circulo::imprimir() Recordar que el operador de resolución de alcance :: se usa con un nombre de clase, mientras que el operador punto se usa con un objeto de esa clase Variables en definiciones de funciones En la implementación de la funcion Circulo::imprimir() empleamos los nombres de las variables de la clase, radio, posicionx y posiciony solos, sin dar primero el objeto y el oprador punto. Esto no es tan extraño como podría parecer a primera vista. A estas alturas, simplemente estamos definiendo la función imprimir. Esta definición aplicará a todos los objetos de tipo Circulo, pero aún no conocemos los nombres de los objetos de ese tipo que usaremos, por lo que no podemos dar sus nombres. Cuando invoquemos la función, como en c1.imprimir(); todos los nombres de miembros de la definición de función se especializarán al nombre de la clase invocadora. Por lo tanto, la llamada de función anterior equivale a los siguiente: cout << Circulo de radio << c1.radio << en ( << c1.posicionx <<, << c1.posiciony << ) << endl; En la definición de una función propia de una clase, podemos emplear los nombres de todos los miembros de esa clase (tanto los valores como las funciones) sin usar el operador punto. 3
4 2.4 Miembros públicos y privados 2 DEFINICIONES 2.4. Miembros públicos y privados Los tipos predefinidos como double no se implementan como clases en C++, pero la gente que escribió el compiladores de C++ que utilizamos sí diseñó una forma de representar valores de tipo double en su computadora. Es posible implementar el tipo double de diversas formas. De hecho, diferentes versiones de C++ implementan el tipo de formas ligeramente distintas, pero si trasladamos nuestro programa en C++ de una computadora a otra que tiene una implementación diferente, el programa deberá funcionar correctamente 2. Las clases son tipos que definimos, y tales tipos deben comportarse tan bien como los tipos predefinidos. Podemos construir una biblioteca con nuestras propias definiciones de tipos de clases y usar nuestros tipos como si fueran tipos predefinidos. Por ejemplo, podrámos colocar cada definición de clase en un archivo aparte y copiarla en cualquier programa que use ese tipo. Es recomendable que nuestras definiciones de clase separen las reglas para usar la clase y los detalles de la implementacioón de la clase de forma tan definitiva como se hizo con los tipos predefinidos. Si modificamos la implementación de una clase (por ejemplo, alterando algunos detalles de la definición de una función miembro con el fin de que las llamadas a esa funcioón sean más rápidas) no deberá ser necesario modificar ninguna otra parte de los programas. Para alcanzar este ideal, necesitamos describir una característica más de las definiciones de clase. Si miramos la clase Circulo, podemos observar que decidimos representar al radio como un double y las posiciones como int. Posteriormente, podríamos decidir cambiar la representación del la posición, de dos variables de tipo int a 2 de tipo float que indiquen la distancia y el ángulo desde el origen del circulo. Este detalle de implementación no deberá preocupara un programador que usa el tipo Circulo. Desde luego, si modificamos la forma en que la clase representa la posición, tambíen deberemos modificar la implementación de la función miembro imprimir, pero eso es todo lo que habrá que cambiar. No deberá ser necesario modificar ninguna otra parte de un programa que use nuestra definición de la clase Circulo. Lamentablemente, el programa del cuadro 1 no cumple con este ideal. Por ejemplo, si sustituimos la variable posicionx por otra llamada distancia, no habrá ninguna variable miembro llamada posicionx, y será necesario cambiar las partes del programa que obtienen entradas, así como la instrucción if. Con una clase ideal, deberemos poder modificar los detalles de implementación de la clase, y lo único que deberemos tener que cambiar en cualquier programa que use la clase serán las definiciones de las funciones miembro. A fin de alcanzar este ideal es necesario tener suficientes funciones miembro como para nunca tener que acceder a las variables miembro directamente, sino s olo a traveés de las funciones miembro. Entonces, si modificamos las variables miembro, sólo tendremos que alterar las definiciones de éstas y no tendremos que modificar ninguna otra parte de nuestros programas. En el cuadro 2 hemos redefinido la clase Circulo de modo que tenga suficnentes funciones miembro para hacer todo lo que queremos que hagan nuestros programas. Así el programa no tiene que hacer referencia directamente a ninguna variable de la clase. Si examinamos el código del cuadro 2, veremos que el único lugar en que se usan los nombres de variables (angulo y distanciaalorigen) es en las definiciones de las funciones de la clase. No hay referencias a circ.angulo fuera de las implementaciones de las funciones miembro. El programa tiene una nueva característica nueva diseñada para asegurar que ningún programador que use la clase hará alguna vez referencia directa a cualquiera de las variables propias. Esta nueva característica es la inclusión de la palabra private. Todos los nombres de variables que se enumeran despuesés de esta línea son miembros privados, lo que significa que no se puede acceder directamente a ellos en el programa (fuera de las funciones de la clase). Si intentamos acceder a ellas, el compilador generará un mensaje de error. (Ya sea desde el main o desde funciones que no pertenezcan a la clase Circulo). Notar que también es posible incluir funciones en la parte privada de la declaración de la clase. Estas son las llamadas funciones miembro privadas. Por último, se incluyo la palabra clave const al final de ciertas funciones. En caso de aparecer, indica que la función a la que decora dejará el objeto con el mismo estado (las variables se mantienen) en que se encontraba antes de llamar a la función. Es decir, se mantiene constante. 2 Hay ocasiones en que no se alcanza plenamente este ideal, pero en el mundo ideal debe alcanzarse y, al menos en el caso de programas sencillos, se alcanza incluse en el mundo imperfecto en el que vivimos. 4
5 2.4 Miembros públicos y privados 2 DEFINICIONES Cuadro 2 #include <iostream > using namespace std ; class P o s i c i o n public : void setearx ( int valx ) ; void seteary ( int valy ) ; int X( ) const ; int Y( ) const ; private : int x ; int y ; ; // implementacion de metodos de l a c l a s e Posicion void P o s i c i o n : : setearx ( int valx ) x = valx ; void P o s i c i o n : : seteary ( int valy ) y = valy ; int P o s i c i o n : : X( ) constreturn x ; int P o s i c i o n : : Y( ) constreturn y ; class C i r c u l o public : void entrada ( ) ; void imprimir ( ) const ; void f i j a r R a d i o ( double r a d i o ) ; void f i j a r P o s i c i o n ( int x, int y ) ; int obtenerradio ( ) const ; ; private : P o s i c i o n c a l c u l a r P o s i c i o n ( f l o a t ang, f l o a t d i s t ) const ; // pasa de angulo d i s t a n c i a a Posicion f l o a t c a l c u l a r A n g u l o ( P o s i c i o n p ) const ; // i n v e r s a s de c a l c u l a r p o s i c i o n f l o a t c a l c u l a r D i s t a n c i a A l O r i g e n ( P o s i c i o n p ) const ; int diametro ; f l o a t angulo ; f l o a t d i s t a n c i a A l O r i g e n ; // implementacion de metodos de l a c l a s e C i r c u l o void C i r c u l o : : imprimir ( ) const cout << C i r c u l o de r a d i o << diametro / 2 ; cout << en ( << c a l c u l a r P o s i c i o n ( angulo, d i s t a n c i a A l O r i g e n ).X( ) ; cout <<, << c a l c u l a r P o s i c i o n ( angulo, d i s t a n c i a A l O r i g e n ).Y( ) << ) << endl ; void C i r c u l o : : entrada ( ) cout << E s c r i b a e l r a d i o d e l c i r c u l o : ; int rad ; c i n >> rad ; P o s i c i o n pos ; f l o a t x, y ; cout << E s c r i b a l a p o s i c i o n en x d e l c i r c u l o : ; c i n >> x ; pos. setearx ( x ) ; cout << E s c r i b a l a p o s i c i o n en y d e l c i r c u l o : ; c i n >> y ; pos. seteary ( y ) ; angulo = c a l c u l a r A n g u l o ( pos ) ; d i s t a n c i a A l O r i g e n = c a l c u l a r D i s t a n c i a A l O r i g e n ( pos ) ; diametro = rad 2 ; void C i r c u l o : : f i j a r R a d i o ( double rad ) diametro = rad 2 ; 5
6 2.4 Miembros públicos y privados 2 DEFINICIONES void C i r c u l o : : f i j a r P o s i c i o n ( int x, int y ) P o s i c i o n pos ; pos. setearx ( x ) ; pos. seteary ( y ) ; angulo = c a l c u l a r A n g u l o ( pos ) ; d i s t a n c i a A l O r i g e n = c a l c u l a r D i s t a n c i a A l O r i g e n ( pos ) ; int C i r c u l o : : obtenerradio ( ) const return diametro / 2 ; P o s i c i o n C i r c u l o : : c a l c u l a r P o s i c i o n ( f l o a t ang, f l o a t d i s t ) const // implementacion ( pasa de angulo d i s t a n c i a en e l plano a p o s i c i o n e s en e l plano ) f l o a t C i r c u l o : : c a l c u l a r A n g u l o ( P o s i c i o n p ) const // implementacion ( pasa de p o s i c i o n e s en e l plano a angulo ) f l o a t C i r c u l o : : c a l c u l a r D i s t a n c i a A l O r i g e n ( P o s i c i o n p ) const // implementacion ( pasa de p o s i c i o n e s en e l plano a d i s t a n c i a a l o r i g e n ) bool C i r c u l o : : seencuentraenelorigen ( ) return d i s t a n c i a A l O r i g e n == 0 ; int main ( ) C i r c u l o c i r c ; // d e c l a r a c i o n de 1 c i r c u l o. c i r c. entrada ( ) ; cout << Usted i n g r e s o un c i r c u l o como e l s i g u i e n t e : << endl ; c i r c. imprimir ( ) ; i f ( c i r c. seencuentraenelorigen ( ) ) cout << Este c i r c u l o s e encuentra en e l o r i g e n de coordenadas ; 6
7 2.5 Resumen de algunas propiedades de las clases 2 DEFINICIONES 2.5. Resumen de algunas propiedades de las clases Las clases tienen todas las propiedades que describimos para las estructuras y además todas las propiedades asociadas a las funciones miembro. A continuación se muestra una lista de lo que es conveniente tener presente al usar clases: Una clase es una entidad abstracta, es un tipo de clasificación de cosas y define el comportamiento y atributos de un grupo de estructuras y comportamientos similares. Un objeto es una instancia o variable de una clase que se distingue de otros miembros de la clase por sus atributos. Las clases tienen tanto variables miembro como funciones miembro. Un miembro (sea una variables o una función) pueden ser púbilico o privado. Normalmente, todas las variables de una clase se etiquetan como privados. Un miembro privado de una clase sólo se puede utilizar dentro de la definición de una función propia de la misma clase. Una clase puede usar otra clase como tipo de una variable propia. Una función puede tener parámetros formales cuyos tipos sean clases. El valor devuelto por una función puede ser una clase. 7
Introducción a C++ y Code::Blocks
Introducción a C++ y Práctica Imperativo Clase 1 Luis Agustín Nieto Departamento de Computación, FCEyN,Universidad de Buenos Aires. 28 de mayo de 2010 Menu de esta Tarde Funcional Vs. Imperativo (Intérprete
Más detallesTema: Funciones Virtuales y Polimorfismo.
Programación II. Guía No. 10 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II Tema: Funciones Virtuales y Polimorfismo. Objetivos Comprender que es ligadura e identificar sus tipos.
Más detallesTema: Funciones Virtuales y Polimorfismo.
Programación II. Guía 10 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II Tema: Funciones Virtuales y Polimorfismo. Objetivos Específicos Comprender que es ligadura e identificar
Más detallesClases y Objetos en C++
Informática II Clases y Objetos en C++ Introducción Las variables de los tipos fundamentales de datos no son suficientes para modelar adecuadamente objetos del mundo real. alto, ancho y longitud para representar
Más detallesTema: Plantillas en C++.
Programación II. Guía 11 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II Tema: Plantillas en C++. Objetivos Específicos Conocer los tipos de plantillas Utilizar las plantillas de
Más detallesProgramación Orientada o Objetos
Programación Orientada o Objetos Programación digital II Escuela de Sistemas Facultad de Ingeniería Profesor: Gilberto Diaz Programación Orientada a Objetos En 1970 Dennis Ritchie y Brian Kernigan crearon
Más detallesApuntes de Clases (continuación)
Apuntes de Clases (continuación) Plantillas: Según va aumentando la complejidad de nuestros programas y sobre todo, de los problemas a los que nos enfrentamos, descubrimos que tenemos que repetir una y
Más detallesCómo implementar tus propias funciones en Lenguaje C?
Cómo implementar tus propias funciones en Lenguaje C? por Iván Cruz Cuando se realiza un programa, es importante siempre manejar una buena organización del código fuente, debido a que se puede desear incrementar
Más detallesIntroducción a C++ y Code::Blocks
a C++ y Práctica Imperativo Clase 1 Leopoldo Taravilse Departamento de Computación, FCEyN,Universidad de Buenos Aires. 19 de octubre de 2012 Menú de esta Tarde Funcional Vs. Imperativo (Intérprete Vs.
Más detalles26 de Octubre del 2013
Hernánz Hernánz OMIJAL 26 Octubre l 2013 Contenidos Hernánz 1 2 3 4 ++ 5 6 7 Hernánz Concepto Un concepto es una ia, algo abstracto. No existe en la naturaleza. Palabras Herramientas que utilizamos para
Más detallesAlgoritmos y Estructuras de Datos Ingeniería en Informática, Curso 2º SEMINARIO DE C++ Sesión 2
Algoritmos y Estructuras de Datos Ingeniería en Informática, Curso 2º SEMINARIO DE C++ Sesión 2 Contenidos: 1. Definición de clases 2. Implementación de los métodos 3. Constructores y destructores 4. Objetos
Más detallesFundamentos Programación Orientada a Objetos ( POO ) - Parte I Desarrollo de Software
República Bolivariana de Venezuela Ministerio de Educación Superior Fundación Misión Sucre Aldea Fray Pedro de Agreda Fundamentos Programación Orientada a Objetos ( POO ) - Parte I 1 Contenido Qué es
Más detallesFunciones Definición de función
Funciones Definición de función Una función es un bloque de código que realiza una tarea específica. Una función es una porción de programa, identificable mediante un nombre, que realiza determinadas tareas
Más detallesTipos Recursivos de Datos
1/1 Tipos Recursivos de Datos Josefina Sierra Santibáñez 27 de noviembre de 2016 2/1 Introducción La recursividad no sólo se puede aplicar a la definición de procedimientos (i.e. funciones o acciones),
Más detallesProgramación 1. Tema I. Conceptos y elementos básicos de Programación. Lección 1. Problemas de tratamiento de información, algoritmos y programas
Programación 1 Tema I. Conceptos y elementos básicos de Programación Lección 1. Problemas de tratamiento de información, algoritmos y programas 1 Problemas, algoritmos y programas Problemas de tratamiento
Más detallesLenguaje de Programación
UG C++ C++ Universidad de Guanajuato Sesión 33 Una estructura es un grupo de variables las cuales pueden ser de diferentes tipos sostenidas o mantenidas juntas en una sola unidad. La unidad es la estructura.
Más detallesProgramación 1 Tema 3. Información, datos, operaciones y expresiones
Programación 1 Tema 3 Información, datos, operaciones y expresiones Índice Datos y tipos de datos Datos primitivos en C++ Expresiones e instrucción de asignación Datos y tipos de datos Problema información
Más detallesProgramación 1 Tema 5. Instrucciones simples y estructuradas
Programación 1 Tema 5 Instrucciones simples y estructuradas Índice Instrucciones simples Instrucciones estructuradas 2 Instrucción ::= 3 Instrucciones.
Más detallesTipos de Datos Recursivos
1/1 Tipos de Datos Recursivos Josefina Sierra Santibáñez 15 de mayo de 2018 2/1 Introducción La recursividad no sólo se puede aplicar a la definición de procedimientos (i.e. funciones o acciones), sino
Más detallesTema: Sobrecarga de Operadores Unarios. Sobrecarga de Funciones.
Programación II. Guía 8 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II Tema: Sobrecarga de Operadores Unarios. Sobrecarga de Funciones. Objetivos Diferenciar sobrecarga de operadores
Más detallesInformática PRÀCTICA 2 Curs
Práctica Nº 2: Estructura general de un programa en C/C++. Introducción a las funciones de Entrada y salida en C++ (cin y cout) sin formato. Objetivos de la práctica: - Presentar la estructura general
Más detallesLenguaje de Programación: C++ Funciones
UG C++ Lenguaje de Programación: C++ Universidad de Guanajuato Septiembre 2010 Lenguaje de Programación: C++ Que es una función? Una función es un conjunto de ĺıneas de código que realizan una tarea específica
Más detallesLABORATORIO #1 INTRODUCCIÓN AL LENGUAJE DE PROGRAMACIÓN C++
LABORATORIO #1 INTRODUCCIÓN AL LENGUAJE DE PROGRAMACIÓN C++ C++ es un lenguaje de programación diseñado por Bjarne Stroustrup a partir de 1979. La intención de su creación fue ampliar al exitoso lenguaje
Más detallesUnidad IV. Este tipo de codificación nos es permitido gracias a la sobrecarga, la cual se aplica a métodos y constructores.
Unidad IV Métodos. 4.1 Definición de un método. El polimorfismo, en programación orientada a objetos, se refiere a la posibilidad de acceder a un variado rango de funciones distintas a través del mismo
Más detallesIntroducción a c++ Introducción a la programación EIS Informática III
Introducción a c++ Un lenguaje de programación es un lenguaje formal diseñado para realizar procesos que pueden ser llevados a cabo por máquinas como las computadoras. Pueden usarse para crear programas
Más detallesSobrecarga de Operadores II
D é c i m o q u i n t a S e s i ó n Metodologías y Técnicas de Programación II Programación Orientada a Objeto (POO) C++ Sobrecarga de Operadores II 1 Sobrecarga de operadores unitarios (o unarios) Son
Más detallesU.A.B.C. Facultad de Ingeniería Programación Estructurada UNIDAD III
UNIDAD III Funciones 3.1 Forma general de una función. C fué diseñado como un lenguaje de programación estructurado, también llamado programación modular. Por esta razón, para escribir un programa se divide
Más detallesINTRODUCCIÓN A LA POO EN C++
INTRODUCCIÓN A LA POO EN C++ ÍNDICE DEL TEMA 1.- Introducción 2.- Diferencias C/C++ 3.- Programación orientada a objetos 4.- Aspectos avanzados C++ 1 1. Introducción Lenguaje C Lenguaje de propósito general
Más detallesLa Herencia. La primera línea de cada declaración debe incluir la sintaxis siguiente:
La Herencia Es la capacidad de compartir atributos y métodos entre clases. Es la propiedad que permite definir nuevas clases usando como base clases ya existentes. La nueva clase (clase derivada) hereda
Más detallesDefinición de clase: Una clase es un prototipo que define las variables y los métodos de todos los objetos con características comunes.
Clases y Objetos Java es un lenguaje orientado a objetos que incorpora un gran número de clases predefinidas organizadas en paquetes. La programación en Java supone definir clases de forma jerárquica,
Más detallesDefinición de clase: Una clase es un prototipo que define las variables y los métodos de todos los objetos con características comunes.
Clases y Objetos Java es un lenguaje orientado a objetos que incorpora un gran número de clases predefinidas organizadas en paquetes. La programación en Java supone definir clases de forma jerárquica,
Más detallesNociones básicas sobre C++ Agustín J. González Patricio Olivares ELO-329
Nociones básicas sobre C++ Agustín J. González Patricio Olivares ELO-329 1 C++ vs C C++ es un lenguaje más actual que C C++ mantiene todo el poder de C agregando características que facilitan la programación.
Más detallesProgramación Avanzada CONCEPTOS BÁSICOS DE IMPLEMENTACIÓN EN C++
Programación Avanzada CONCEPTOS BÁSICOS DE IMPLEMENTACIÓN EN C++ OBJETIVO En este documento se presentan las construcciones básicas de orientación a objetos del lenguaje de programación C++, y recomendaciones
Más detallesProgramación orientada a objetos I
Introducción Programación orientada a objetos I Curso INEM. Programación en C++ Santiago Muelas Pascual smuelas@fi.upm.es Qué es la POO? Un paradigma de programación Un paradigma es una forma de afrontar
Más detallesELO329: Diseño y Programación Orientados a Objetos Segundo Certamen
Segundo Certamen Primera Parte (Sin Apuntes, 30 minutos, 1/3 puntaje): (5 pts cada una, el total se multiplica por 34/40) 1. Cuál es la relación entre clases protegidas, privadas y el calificador Friend?
Más detalles18. Interfaces Declaración de una interfaz
Programación orientada a objetos con Java 191 18. Interfaces Objetivos: a) Definir el concepto de interfaz b) Interpretar el código fuente de una aplicación Java donde aparecen interfaces c) Construir
Más detallesProgramación 1 Tema 5. Instrucciones simples y estructuradas
Programación 1 Tema 5 Instrucciones simples y estructuradas Índice Instrucciones simples Instrucciones estructuradas Instrucción ::= Instrucciones.
Más detallesINFORMÁTICA INDUSTRIAL
INFORMÁTICA INDUSTRIAL Herencia en C++. M. Abderrahim, A. Castro, J. C. Cas3llo Departamento de Ingeniería de Sistemas y Automá3ca AGENDA Herencia Constructores de las Clases Derivadas Destructores de
Más detallesUnidad V. Ya veremos qué poner en "algunas_palabras" y "algo_más", por ahora sigamos un poco más.
Implementación Orientada a Objetos. Unidad V 5.1 Estructura de una clase. Una clase consiste en: algunas_palabras class nombre_de_la_clase [algo_más] { [lista_de_atributos] [lista_de_métodos] Lo que está
Más detallesCursosindustriales. Curso de C / C++ Por Deimos_hack
MÓDULO 1. ESTRUCTURAS Y FUNCIONES. En los capítulos anteriores has visto como los arrays permiten almacenar diferentes datos, pero todos del mismo tipo de dato. En la práctica esto no compensa debido a
Más detallesAlgunas ideas básicas de C++ Agustín J. González ELO-329
Algunas ideas básicas de C++ Agustín J. González ELO-329 1 Archivos de encabezado Son necesarios para hacer uso de constantes predefinidas. Son incluidos con la directiva del pre-procesador #include Ejemplo:
Más detallesIntroducción a los Computadores ITTELSI. Curso
Introducción a los Computadores ITTELSI. Curso 2004-2005 PRÁCTICA 2: ESTRUCTURAS DE CONTROL Y SUBPROGRAMAS (I) Hoy vamos a practicar más conceptos sencillos del lenguaje, que nos permitan decidir qué sentencias
Más detallesEstructuración del programa en partes más pequeñas y sencillas
Introducción Estructuración del programa en partes más pequeñas y sencillas Modularización Propósito único Identificable Reusable Mayor claridad: programación, depuración, etc. Construcción de librerías
Más detallesSOFTWARE Microsoft Visual Studio 2005.NET FrameWork 2.0
OBJETIVOS! ""# $% % REQUERIMIENTOS SOFTWARE Microsoft Visual Studio 2005.NET FrameWork 2.0 DESCRIPCIÓN En este tutorial se va a revisar la forma de trabajar con los conceptos de OO en Visual Basic.NET.
Más detallesObjetivo N 2. Conocer la Estructura General de un Programa en C++ Estructura de Datos Prof. Egilde Márquez
Objetivo N 2 Conocer la Estructura General de un Programa en C++ Estructura de Datos Prof. Egilde Márquez * Un programa en C++ está definido por funciones (grupo de instrucciones que pueden o no hacer
Más detallesTipos de datos y operadores en C++
Tipos de datos y operadores en C++ El tipo de dato determina la naturaleza del valor que puede tomar una variable. Un tipo de dato define un dominio de valores y las operaciones que se pueden realizar
Más detallesProgramación 1 Tema 7. Desarrollo modular y descendente de programas
Programación 1 Tema 7 Desarrollo modular y descendente de programas Índice Programas dirigidos por menú Diseño modular Módulos de biblioteca en C++ Programa dirigido por menú MENÚ DE OPERACIONES ===================
Más detallesSubrutinas o Funciones
Subrutinas o Funciones JUAN CARLOS CONDE RAMÍREZ INTRODUCTION TO PROGRAMMING Objetivos Conocer las características estructurales de una función. Entender la importancia y las ventajas del uso de funciones
Más detallesTema: Punteros a Objetos. Puntero this.
Programación II. Guía 6 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II Tema: Punteros a Objetos. Puntero this. Objetivos Manejar objetos por medio de punteros. Utilizar el puntero
Más detallesTaller #1 (versión del 18 de septiembre de 2009) Programación básica y aproximación al paradigma orientado a objetos
Universidad del Valle Facultad de Ingeniería Escuela de Ingeniería de Sistemas y Computación Introducción a la Programación Orientada a Objetos (750081M) Taller #1 (versión del 18 de septiembre de 2009)
Más detallesFormatos para prácticas de laboratorio
Fecha de efectividad: CARRERA Ing. En Mecatrónica PLAN DE ESTUDIO CLAVE ASIGNATURA NOMBRE DE LA ASIGNATURA 2009-2 11892 Programación Orientada a Objetos PRÁCTICA No. 4 LABORATORIO DE NOMBRE DE LA PRÁCTICA
Más detallesFunciones: Pasos por Referencia Recursividad
Funciones: Pasos por Referencia Recursividad Fundamentos de Programación Fundamentos de Programación I Parámetros por referencia Con la instrucción return sólo se puede devolver un valor calculado. A veces
Más detallesProgramación I Teoría II.
Programación I Teoría II http://proguno.unsl.edu.ar proguno@unsl.edu.ar MODULARIDAD FUNCIONES EN C Modularidad Principio para resolución de problemas: Dividir para reinar Modularidad Módulo Función Procedimiento
Más detallesTema 6: Herencia. (El lenguaje C++)
(El lenguaje C++) 1 Índice 2 1. Herencia 3 En C++ pueden ser definidas clases en términos de otras clases (composición). En C++ también podemos definir una clase a partir de otra preexistente utilizando
Más detallesProgramación C++ (1 Parte) Dr. Oldemar Rodríguez Rojas Escuela De Informática Universidad Nacional
Programación C++ (1 Parte) Dr. Oldemar Rodríguez Rojas Escuela De Informática Universidad Nacional Programming Language Popularity: The TCP Index for December, 2012 La noción de clase en C++ C++ fue
Más detallesProgramación 1 Tema 3. Información, datos, operaciones y expresiones
Programación 1 Tema 3 Información, datos, operaciones y expresiones Índice Datos y tipos de datos Datos primitivos en C++ Expresiones e instrucción de asignación Datos y tipos de datos Problema información
Más detallesFundamentos de la POO 1
Fundamentos de la POO 1 La correcta aplicación de los conocimientos de clases y objetos nos permitirán llegar a los objetivos planteados y a generar programas que puedan ser fáciles de comprender para
Más detallesAnálisis y escritura de las estructuras de control
Análisis y escritura de las estructuras de control por Iván Cruz En esta lectura se abordarán las estructuras de control del lenguaje de programación C, estas estructuras. Permiten al programador comunicarse
Más detallesAlgunas ideas básicas de C++ Agustín J. González ELO-329
Algunas ideas básicas de C++ Agustín J. González ELO-329 1 Archivos de encabezado Son necesarios para hacer uso de constantes predefinidas. Son incluidos con la directiva de l procesador #include Ejemplo:
Más detallesProgramación Avanzada
Programación Avanzada Referencias Circulares y Namespaces 1 Índice 1. INTRODUCCIÓN.. 3 2. REFERENCIAS CIRCULARES.. 4 Ejercicio 1 4 Ejercicio 2 4 Ejercicio 3 5 3. NAMESPACES 6 Introducción 6 Creación de
Más detallesLas clases como tipos de datos definidos por el usuario
. La clase Fraccional. Representación en UML de los niveles de acceso 3. Categorías de los objetos que aparecen en los métodos 4. El puntero this. Métodos operadores La clase Fraccional Vamos a diseñar
Más detallesLenguaje de Programación: C++ Funciones
UG C++ Lenguaje de Programación: C++ Universidad de Guanajuato Septiembre 2010 Lenguaje de Programación: C++ sobrecargadas C++, a diferencia del C estándar, permite declarar funciones con el mismo nombre
Más detallesProgramación 1. Tema II. Diseño de los primeros programas. Lección 4. Diseño de algunos programas elementales
Programación 1 Tema II. Diseño de los primeros programas Lección 4. Diseño de algunos programas elementales 1 Objetivos de la lección: Aprender, paso a paso, una metodología de programación descendente
Más detallesUna función es un miniprograma dentro de un programa. Las funciones contienen varias
TEMA 6. FUNCIONES. Una función es un miniprograma dentro de un programa. Las funciones contienen varias sentencias bajo un solo nombre, que un programa puede utilizar una o más veces para ejecutar dichas
Más detallesCONTENIDO DE LA LECCIÓN 16
CONTENIDO DE LA LECCIÓN 16 USO DE REFERENCIAS EN C++ 1. Introducción 2 2. Parámetros de referencia como alias 2 2.1. Ejemplo 16.1 3 3. Variables de referencia como alias 4 3.1. Ejemplos 16.2, 16.3, 16.4,
Más detallesManejo de Excepciones. Agustín J. González ELO329
Manejo de Excepciones Agustín J. González ELO329 Manejo de Excepciones El Manejo de Excepciones es un mecanismo interno para comunicar estados de error desde una parte del programa a otra. Comúnmente,
Más detallesUNIVERSIDAD DE LOS ANDES NUCLEO UNIVERSITARIO RAFAEL RANGEL (NURR) DEPARTAMENTO DE FISICA Y MATEMATICA AREA COMPUTACION TRUJILLO EDO.
UNIVERSIDAD DE LOS ANDES NUCLEO UNIVERSITARIO RAFAEL RANGEL (NURR) DEPARTAMENTO DE FISICA Y MATEMATICA AREA COMPUTACION TRUJILLO EDO. TRUJILLO 1.- Resumen de Prog1 Comentarios es C++ Declaraciones de variables.
Más detallesLenguaje de Programación: C++ Repaso de Material C++
UG Lenguaje de Programación: C++ Repaso de Material C++ Universidad de Guanajuato Octubre 2010 Variables Tipos de Variables Operadores Variable Para poder leer algo, necesitamos un lugar donde poner lo
Más detallesPunteros y Memoria Dinámica I
Memoria Punteros y Memoria Dinámica I Curso INEM. Programación en C++ Santiago Muelas Pascual smuelas@fi.upm.es! Lugar donde almacenan los datos y las instrucciones! Compuesta de un gran número de bytes!
Más detallesLenguaje de Programación: C++ Directivas al preprocesador
UG Lenguaje de Programación: C++ Directivas al preprocesador Universidad de Guanajuato Septiembre 2010 Un preprocesador es un programa separado que es invocado por el compilador antes de que comience la
Más detallesCAPITULO 6: FUNCIONES
CAPITULO 6: FUNCIONES 1. INTRODUCCIÓN Un problema de programación en C se resuelve descomponiéndolo en varias partes. Cada una de estas partes se puede asociar a una función que resuelva su fracción correspondiente
Más detallesProgramación Orientada a Objetos en C++
Unidad I Programación Orientada a Objetos en C++ Programación Orientada a Objetos en C++ Programación I - 0416202 Contenido Esta lección abarca los siguientes temas: Estructura y declaración de una clase
Más detallesFundamentos de programación
Fundamentos de programación 4 Grado en Ingeniería Informática Grado en Ingeniería del Software Grado en Ingeniería de Computadores Material de la Prof.ª Versión revisada y ampliada del material del Prof.
Más detallesLenguaje C, tercer bloque: Funciones
Lenguaje C, tercer bloque: Funciones José Otero 1 Departamento de informática Universidad de Oviedo 28 de noviembre de 2007 Índice 1 Tipo puntero Concepto de puntero Operador dirección Operador indirección
Más detallesLenguaje C. República Bolivariana de Venezuela Fundación Misión Sucre Aldea Fray Pedro de Agreda Introducción a la Programación III
República Bolivariana de Venezuela Fundación Misión Sucre Aldea Fray Pedro de Agreda Introducción a la Programación III Lenguaje C 1 Puntos previos Los códigos fuentes generados en C requieren ser compilados
Más detallesDepartamento de Electrónica
Introducción al Departamento de Electrónica Fundación San Valero Introducción al 1 Introducción al Introducción al 2 Introducción al Introducción al 3 Características del Características del Departamento
Más detallesTécnicas Informáticas PRÁCTICA 7 Curso PRÁCTICA 7: Cadenas y Estructuras.
: Cadenas y Estructuras. Objetivo de la práctica: - Utilización y manipulación de cadenas de texto. Conocer y aplicar el tipo de dato estructurado en C++. Cadenas Las cadenas ('string') son un tipo especial
Más detallesEstructura de datos y Programación
Estructura de datos y Programación Tema: Conceptos Básicos- Estructuras de control - Arreglos Ing. Analia Méndez Ing. Raquel Zarco Año: 2012 ELEMENTOS DE UN PROGRAMA EN JAVA El programa Java consta de
Más detallesCarlos Montenegro. Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas
2 - Introducción al lenguaje Java, identificadores y comentarios. Carlos Montenegro Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas 1. Introducción: Java tiene como todos
Más detallesCapítulo 11 INTRODUCCIÓN A LA CODIFICACIÓN EN C. Presentación resumen del libro: "EMPEZAR DE CERO A PROGRAMAR EN lenguaje C"
Presentación resumen del libro: "EMPEZAR DE CERO A PROGRAMAR EN lenguaje C" Autor: Carlos Javier Pes Rivas (correo@carlospes.com) Capítulo 11 INTRODUCCIÓN A LA CODIFICACIÓN EN C 1 OBJETIVOS Aprender a
Más detallesÍndice. Estructuras de datos en Memoria Principal. Vectores. Matrices. Cadenas de caracteres. Estructuras. Estructuras de datos en Memoria Externa
Índice Estructuras de datos en Memoria Principal Vectores Matrices Cadenas de caracteres Estructuras Estructuras de datos en Memoria Externa Ficheros Tema: Estructuras de Datos 2 Estructuras Una estructura
Más detallesEl lenguaje C++ A partir del lenguaje C Entorno de programación Visual C++
El lenguaje C++ A partir del lenguaje C Entorno de programación Visual C++ Nuevas palabras reservadas asm inline public virtual catch new template class operator this delete private throw friend protected
Más detallesInformática Industrial I
Informática Industrial I Grado en Ingeniería en Electrónica Industrial y Automática Álvaro Castro González Nicolas Burus Mohamed Abderrahim José Carlos Castillo Montoya Práctica 6 Plantillas A lo largo
Más detallesParadigmas de lenguajes de programación. Introducción a la programación imperativa. Lenguaje C. Programación imperativa
Paradigmas de lenguajes de programación Introducción a la programación imperativa Algoritmos y Estructuras de Datos I Paradigma: Definición del modo en el que se especifica el cómputo (que luego es implementado
Más detallesProgramación 1 Tema 2. Lenguaje de programación y ejecución de un programa
Programación 1 Tema 2 Lenguaje de programación y ejecución de un programa Índice Lenguaje de programación Símbolos Sintaxis Semántica Computador Ejecución de un programa Sistema operativo, entorno de programación
Más detallesTema 3. Herencia. Programación Avanzada. Jorge Badenas
Tema 3. Herencia Programación Avanzada Jorge Badenas 1. Herencia Herencia: relación entre dos clases, donde una clase nueva se define como una extensión de la otra. En la nueva clase sólo necesitamos escribir
Más detallesClases en C++ Agustín J. González ELO329
Clases en C++ Agustín J. González ELO329 1 Clases y Objetos Una clase es un tipo de datos definido por el usuario. Provee un molde o diseño" para múltiples objetos del mismo tipo o categoría. Un objeto
Más detallesProgramación 1. Tema I. Conceptos y elementos básicos de Programación. Lección 2. Lenguaje de programación y ejecución de un programa
Programación 1 Tema I. Conceptos y elementos básicos de Programación Lección 2. Lenguaje de programación y ejecución de un programa 1 Léxico, sintaxis y semántica de un lenguaje #include #include
Más detallesRepaso Lenguaje C Área de Servicios Programación (Ing. Elect. y Prof. Tec.), Programación I (TUG y TUR) y Electrónica programable (TUE)
Repaso Lenguaje C OBJETOS Variables Constantes Variable: objeto del ambiente cuyo contenido puede cambiar. Constante: objeto cuyo contenido no puede cambiar. Variables: - un nombre que la identifica. Deben
Más detallesLos constructores son funciones miembro especiales que sirven para inicializar un objeto de una determinada clase al mismo tiempo que se declara.
Constructores Los constructores son funciones miembro especiales que sirven para inicializar un objeto de una determinada clase al mismo tiempo que se declara. Los constructores tienen el mismo nombre
Más detalles! Qué es la POO?! Un paradigma de programación. ! No hay paradigmas mejores ni peores! Todos tienen sus ventajas e inconvenientes
Introducción Programación orientada a objetos Curso INEM. Programación en Java Santiago Muelas Pascual smuelas@fi.upm.es! Qué es la POO?! Un paradigma de programación! Un paradigma es una forma de afrontar
Más detallesUna clasificación de los tipos de datos existentes en los diferentes lenguajes de programación se presenta a continuación:
Clase teórica 2 Algoritmos en C Página 1 de 6 TIPOS DE DATOS Una clasificación de los tipos de datos existentes en los diferentes lenguajes de programación se presenta a continuación: Por el momento nuestro
Más detallesProgramación 1 Problemas del Composición condicional
Programación 1 Problemas del 6-10-2016 Composición condicional Un problema Programa que indique si un año es o no bisiesto Escriba un año: 2016 El año 2016 es bisiesto Escriba un año: 2017 El año 2017
Más detallesQué es Java? Un lenguaje de programación Un entorno de desarrollo Un entorno de aplicación Un entorno de despliegue Es similar en sintaxis de C + +.
APUNTES DE JAVA Agenda Bienvenida Conociendo Java La Maquina Virtual Descargar e instalar el compilador El entorno de trabajo El paradigma de la programación orientada a objetos Qué es Java? Un lenguaje
Más detallesTema 7. Colas. José M. Badía, Begoña Martínez, Antonio Morales y José M. Badía. {badia, bmartine,
Tema 7. Colas http://aulavirtual.uji.es José M. Badía, Begoña Martínez, Antonio Morales y José M. Badía {badia, bmartine, morales}@icc.uji.es Estructuras de datos y de la información Universitat Jaume
Más detallesFundamentos de la programación
Fundamentos de la programación 2 Grado en Ingeniería Electrónica y Comunicaciones Pilar Sancho Thomas Luis Hernández Yáñez Facultad de Informática Universidad Complutense Fundamentos de la programación:
Más detalles