Funciones y Clases Amigas en C++ Dr. Oldemar Rodríguez Rojas Escuela de Informática Universidad de Nacional
|
|
- Encarnación Quintana Núñez
- hace 7 años
- Vistas:
Transcripción
1 Funciones y Clases Amigas en C++ Dr. Oldemar Rodríguez Rojas Escuela de Informática Universidad de Nacional
2 INTRODUCCIÓN A LAS FUNCIONES AMIGAS Habrá momentos en los que se quiera que una función tenga acceso a los miembros privados de una clase sin que esa función sea realmente un miembro de esa clase. De cara a esto, C++ soporta las funciones amigas. Una función amiga no es un miembro de una clase, pero tiene acceso a sus elementos privados.
3 Para qué sirven las funciones amigas? Dos motivos por los que las funciones amigas son útiles tienen que ver con la sobrecarga de operadores y la creación de ciertos tipos de funciones de E/S. Una tercera razón para las funciones amigas es que habrá momentos en los que una función tenga acceso a los miembros privados de dos o más clases diferentes. Este uso es el que se examina aquí. Una función amiga se define como una función no miembro normal. Sin embargo, dentro de la declaración de clase para la que será una función amiga, está también incluido su prototipo, precedido por la palabra clave friend. Para entender cómo funciona, examine este breve programa:
4 #include <iostream.h> #include <conio.h> class myclass { public: ; int n, d; myclass(int i,int j) {n=i;d=j; // declara una función amiga de myclass friend int isfactor(myclass ob); int isfactor(myclass ob) { if(!(ob.n % ob.d)) return 1; return 0; int main() { myclass ob1(10,2),ob2(13,3); if(isfactor(ob1)) cout << "2 es un factor de 10\n"; cout << "2 no es un factor de 10\n"; if(isfactor(ob2)) cout << "3 es un factor de 13\n"; cout << "3 no es un factor de 13\n"; char ch=getch(); return 0;
5 En este ejemplo, myclass declara su función constructora y la función amiga isfactor() dentro de su declaración de clase. Debido a que isfactor() es una función amiga de myclass, isfactor() tiene acceso a sus áreas privadas. Esto es por lo que dentro de isfactor(), es posible referirse directamente a ob.n y ob.d. Es importante entender que una función amiga no es un miembro de la clase de la que es amiga. Por lo tanto, no es posible llamar a una función amiga usando un nombre de objeto y un operador de acceso a miembro de clase (un punto o flecha). Por ejemplo, suponiendo el ejemplo anterior, esta sentencia está mal: ob1.isfactor(); // ERROR
6 Las funciones amigas se llaman igual que las funciones normales. Aunque una función amiga tiene conocimiento de los elementos privados de la clase de la que es amiga, sólo puede acceder a ellos a través de un objeto de la clase. Es decir, a diferencia de un miembro de myclass, que se pueden referir directamente a n o d, una función amiga puede acceder a estas variables sólo en conjunción con un objeto que esté declarado dentro o pasado a la función amiga. Debido a que las funciones amigas no son miembros de una clase, normalmente se le pasarán uno o más objetos de la clase para la que están definidas.
7 Una función amiga no es miembro y no se puede calificar mediante un nombre de objeto. Se tiene que llamar como una función normal. Una función amiga no se hereda. Es decir, cuando una clase base incluye una función amiga, la función amiga no es una función amiga de la clase derivada. Otro punto importante sobre las funciones amigas es que una función amiga puede ser amiga de más de una clase. Un uso común (y bueno) de una función amiga se da cuando dos tipos diferentes de clases tienen alguna cantidad en común que hay que comparar. Por ejemplo, considere el siguiente programa, que crea una clase llamada car y una clase llamada truck, cada una conteniendo, como una variable privada, la velocidad del vehículo que representa, veamos el siguiente ejemplo: Esto permite implementar relaciones de Asociación.
8 #include <iostream.h> #include <conio.h> class truck; // una referencia anticipada class car { int passengers; int speed; public: car(int p,int s) {passengers=p;speed=s; friend int sp_greater(car c, truck t); ; class truck { int weight; int speed; public: truck(int w,int s) {weight=w;speed=s; friend int sp_greater(car c, truck t); ; int sp_greater(car c,truck t) { return c.speed-t.speed;
9 int main() { int t; car c1(6,55),c2(2,130); truck t1(10000,55), t2(20000,72); cout << "Comparando el y tl:\n"; t=sp_greater(c1,t1); if(t<0) cout <<"El camión es más rápido. \n"; if(t==0) cout << "La velocidad del coche y del camión es la misma.\n"; cout << "El coche es más rápido.\n"; cout << "\ncomparando c2 y t2:\n"; t=sp_greater(c2,t2); if(t<0) cout << "El camión es más rápido.\n"; if(t==0) cout << "La velocidad del coche y del camión es la misma.\n"; cout << "El coche es más rápido.\n"; char ch=getch(); return 0;
10 Una función puede ser miembro de una clase y amiga de otra. Veamos el siguiente ejemplo:
11 #include <iostream.h> #include <conio.h> class truck; // una referencia anticipada class car { int passengers; int speed; public: car(int p,int s) {passengers=p;speed=s; int sp_greater(truck t); ; class truck { int weight; int speed; public: truck(int w,int s) {weight=w;speed=s; friend int car::sp_greater(truck t); ; int car::sp_greater(truck t) { return speed - t.speed;
12 int main() { int t; car c1(6,55),c2(2,130); truck t1(10000,55), t2(20000,72); cout << "Comparando el y tl:\n"; t=c1.sp_greater(t1); if(t<0) cout <<"El camión es más rápido. \n"; if(t==0) cout << "La velocidad del coche y del camión es la misma.\n"; cout << "El coche es más rápido.\n"; cout << "\ncomparando c2 y t2:\n"; t=c2.sp_greater(t2); if(t<0) cout << "El camión es más rápido.\n"; if(t==0) cout << "La velocidad del coche y del camión es la misma.\n"; cout << "El coche es más rápido.\n"; char ch=getch(); return 0;
13 Clases Amigas El caso más común de amistad se aplica a clases completas. El modificador friend puede aplicarse a clases o funciones para inhibir el sistema de protección. Las relaciones de "amistad" entre clases son parecidas a las amistades entre personas: La amistad no puede transferirse, si A es amigo de B, y B es amigo de C, esto no implica que A sea amigo de C. (La famosa frase: "los amigos de mis amigos son mis amigos" es falsa en C++, y probablemente también en la vida real). La amistad no puede heredarse. Si A es amigo de B, y C es una clase derivada de B, A no es amigo de C. (Los hijos de mis amigos, no tienen por qué ser amigos míos. De nuevo, el símil es casi perfecto). La amistad no es simétrica. Si A es amigo de B, B no tiene por qué ser amigo de A. (En la vida real, una situación como esta hará peligrar la amistad de A con B, pero de nuevo me temo que en realidad se trata de una situación muy frecuente, y normalmente A no sabe que B no se considera su amigo).
14 #include <iostream> using namespace std; class Amigable { private: int secreto; friend void FuncionAmiga(Amigable& o); friend class Amiga; ; class Amiga { public: void mirar(amigable& o) { o.secreto = 120; cout << o.secreto << endl; ;
15 void FuncionAmiga(Amigable& o) { o.secreto = 121; cout << o.secreto << endl; // Programa principal int main() { Amiga amiga; Amigable amigable; amiga.mirar(amigable); FuncionAmiga(amigable); system("pause"); system("cls"); return 0; <Ver Ej1.CPP>
Programación C++(3 Parte) Dr. Oldemar Rodríguez Rojas Maestría en Computación Universidad de Costa Rica
Programación C++(3 Parte) Dr. Oldemar Rodríguez Rojas Maestría en Computación Universidad de Costa Rica Ejemplo 2.2: Noción de "Encapsulación" en C++ La implementación ESTRUCTURADA de una pila mediante
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 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 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 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 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 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 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 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 detallesFundamentos de la programación
Fundamentos de la programación 4A Grado en Ingeniería Informática Grado en Ingeniería del Software Grado en Ingeniería de Computadores Facultad de Informática Universidad Complutense Archivos como parámetros
Más detallesHERENCIA. TCuenta. - int numcuenta - string nomcliente - double saldo - double tipointeres
HERENCIA TCuenta - int numcuenta - string nomcliente - double saldo - double tipointeres + TCuenta() + void setnumcuenta(int num) + void setnomcliente(string nom) + void setsaldo(double sal) + void settipointeres(
Más detallesAgustín J. González ELO329
( Friend ) Funciones y Clases Amigas ( Static ) Miembros Estáticos Agustín J. González ELO329 Funciones y Clases Friend El calificador friend se aplica a funciones globales y clases para otorgar acceso
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 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 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 detallesPROGRAMACIÓN ORIENTADA A OBJETOS
PROGRAMACIÓN ORIENTADA A OBJETOS GRADO EN INGENIERÍA INFORMÁTICA SEGUNDO CURSO DEPARTAMENTO DE INFORMÁTICA Y ANÁLISIS NUMÉRICO ESCUELA POLITÉCNICA SUPERIOR UNIVERSIDAD DE CÓRDOBA CURSO ACADÉMICO: 2011
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 detallesImpresión por pantalla. 3. Indicar la salida por pantalla (2 puntos-20 minutos)
3. Indicar la salida por pantalla (2 puntos-20 minutos) #include class EUITIelemento; class EUITIpila int num; EUITIelemento *pila[10]; EUITIpila():num(0); bool push(euitielemento *in) if(num>=10)return
Más detallesAgustín J. González ELO329
( Friend ) Funciones y Clases Amigas ( Static ) Miembros Estáticos Agustín J. González ELO329 Funciones y Clases Friend El calificador friend se aplica a funciones globales y clases para otorgar acceso
Más detallesAPUNTES PROII 2º PARCIAL.
APUNTES PROII 2º PARCIAL. MEMORIA DINÁMICA. Hay que distinguir entre: Estática: memoria que se reserva en tiempo de compilación. Dinámica: memoria que se reserva en tiempo de ejecución. 5 pasos: 1. Declaración
Más detallesPOO PROGRAMACIÓN ORIENTADA A OBJETOS
POO PROGRAMACIÓN ORIENTADA A OBJETOS 1 Programación estructurada, consiste en descomponer el problema objeto de resolución en subproblemas y más subproblemas hasta llegar a acciones muy simples y fáciles
Más detallesMétodos de Ordenamiento
Métodos de Ordenamiento Muchas veces es necesario además de buscar elementos dentro de en un vector, ordenarlos. El ordenamiento puede ser de mayor a menor si se están manejando números y en orden alfabético
Más detalles3. Indicar la salida por pantalla (2 puntos-10 minutos)
APELLIDOS NOMBRE Nº Mat. UNIVERSIDAD POLITÉCNICA DE MADRID ESCUELA UNIVERSITARIA DE INGENIERÍA TÉCNICA INDUSTRIAL Departamento El.A.I. ASIGNATURA INFORMÁTICA INDUSTRIAL Calificación CURSO 2º GRUPO Junio
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 detallesCURSO 2º GRUPO Junio 2011
APELLIDOS NOMBRE Nº Mat. UNIVERSIDAD POLITÉCNICA DE MADRID ESCUELA UNIVERSITARIA DE INGENIERÍA TÉCNICA INDUSTRIAL Departamento El.A.I. ASIGNATURA INFORMÁTICA INDUSTRIAL Calificación CURSO 2º GRUPO Junio
Más detallesProgramación en C++ L.I Gerardo Benavides Pérez
Programación en C++ L.I Gerardo Benavides Pérez Historia El nombre C++ es también de ese año, y hace referencia al carácter del operador incremento de C (++). Como lenguaje orientado a objetos se basa
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 detallesImpresión por pantalla
3. Indicar la salida por pantalla (2 puntos-20 minutos) #include template void Funcion_B(S& a, S& b); template void Funcion_A (T *vector, int num); void main(void) float
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 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 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 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 detallesIntroducción a la Programación orientada a objetos con C++
Introducción a la Programación orientada a objetos con C++ Informática Industrial Ing. en automática y electrónica Industrial Isidro Calvo Informática Industrial 2006/07 2 Objetivos principales Exponer
Más detallesIntroducció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 detallesProgramación 1 Tema II Clase de problemas. Diseño de programas elementales
Programación 1 Tema II Clase de problemas Diseño de programas elementales 1 Problema 1º. Programa Caramelos Diseñar un programa C++ interactivo con el siguiente comportamiento: Numero de caramelos a repartir:
Más detallesMacros LENGUAJE DE PROGRAMACIÓN ESTRUCTURADO
Macros LENGUAJE DE PROGRAMACIÓN ESTRUCTURADO Macros tipo objeto #define IDENTIFICADOR VALOR Permiten definir identificadores que son automáticamente reemplazados por un fragmento de código. Son especialmente
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 detallesProgramación C++ (5 Parte) Dr. Oldemar Rodríguez Rojas Escuela de Informática Universidad Nacional
Programación C++ (5 Parte) Dr. Oldemar Rodríguez Rojas Escuela de Informática Universidad Nacional Polimorfismo, métodos virtuales y estáticos Todos los métodos vistos hasta ahora son estáticos, estos
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 detallesFormato para prácticas de laboratorio
CARRERA PLAN DE ESTUDIO CLAVE ASIGNATURA NOMBRE DE LA ASIGNATURA Ing en Mecatrónica 2009-2 11892 Programación Orientada a Objetos PRÁCTICA No LABORATORIO DE INGENIERÍA MECATRÓNICA DURACIÓN(HORAS) 6 NOMBRE
Más detallesProf. Dr. Paul Bustamante
Prácticas de C++ Practica Nº 12 Informática II Fundamentos de Programación Prof. Dr. Paul Bustamante Practica Nº 12 Programación en C++ Pág. 1 ÍNDICE ÍNDICE... 1 1. Introducción... 1 1.1 Ejercicio 1: Herencia
Más detallesMANEJO DE EXCEPCIONES en C++ Dr. Oldemar Rodríguez R. Escuela de Informática Universidad Nacional
MANEJO DE EXCEPCIONES en C++ Dr. Oldemar Rodríguez R. Escuela de Informática Universidad Nacional C++ posee un mecanismo de gestión de errores incorporado que se denomina manejo de excepciones. La utilización
Más detallesIntroducción al laboratorio de Programación I
Introducción al laboratorio de Programación I Manuel Montenegro montenegro@fdi.ucm.es es Despacho B12 Compilación Es el proceso de transformación de un programa escrito en un lenguaje de alto nivel (en
Más detallesClases, Objetos y Métodos (II)
Clases, Objetos y Métodos (II) Pablo San Segundo (C-206) pablo.sansegundo@upm.es Índice Introducción al concepto de clase Elementos de una clase Implementación: declaración y definición Permisos y encapsulamiento
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 detallesTemas. Taller III 2007 Gentile,Vazquez
Temas Arreglos de Objetos Punteros de Objetos Arreglos de Punteros de Objetos Constructor de Copia Herencia Constructores y Destructores en Herencia Accesibilidad en Herencia 1 Arreglo de objetos Televisor
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 detallesESCUELA DE INGENIERÍA DE SISTEMAS DEPARTAMENTO DE COMPUTACIÓN PROGRAMACIÓN 2 PRÁCTICA DE LABORATORIO 7 Herencia y Composición en POO
ESCUELA DE INGENIERÍA DE SISTEMAS DEPARTAMENTO DE COMPUTACIÓN PROGRAMACIÓN 2 PRÁCTICA DE LABORATORIO 7 Herencia y Composición en POO Contenido Introducción... 1 Concepto de la Herencia... 2 Relación de
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 detallesFundamentos de la programación
Fundamentos de la programación 3E Grado en Ingeniería Informática Grado en Ingeniería del Software Grado en Ingeniería de Computadores Facultad de Informática Universidad Complutense Recorridos 404 Un
Más detallesAlgoritmos y Estructuras de Datos Ingeniería en Informática, Curso 2º SEMINARIO DE C++ Sesión 1
Algoritmos y Estructuras de Datos Ingeniería en Informática, Curso 2º SEMINARIO DE C++ Sesión 1 Contenidos: 1. Características generales de C++ 2. Entrada/salida estándar 3. Variables y tipos de datos
Más detallesCapítulo 6. Introducción a la POO
Capítulo 6. Introducción a la POO 6. 1. Clases, Objetos y Métodos Definición La Programación Orientada a Objetos (POO) es una forma especial de programar, más cercana a cómo expresaríamos las cosas en
Más detallesTema: Arreglos de Objetos en C++.
Programación II. Guía 5 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II Tema: Arreglos de Objetos en C++. Objetivos Específicos Describir la implementación de arreglos de Objetos.
Más detallesClases en C++ Universidad de Carabobo Facultad Experimental de Ciencias y Tecnología Algoritmos y Programación II. Enero de 2005
Clases en C++ Universidad de Carabobo Facultad Experimental de Ciencias y Tecnología Algoritmos y Programación II Enero de 200 1. Definición de Clases Cada clase contiene: datos (datos miembro o campos),
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 detallesTema: Clases y Objetos en C++.
1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II Tema: Clases y Objetos en C++. Objetivos Específicos Aplicar clases, objetos, propiedades, métodos y mensajes. Poner en práctica
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 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 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 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 detallesTipos de Datos Simples Contenido del Tema
T E M A 3 Tipos de Datos Simples Contenido del Tema 3.1. Concepto de Tipo 3.1.1. Elementos básicos: atributos y operaciones 3.1.2. Tipos. Concepto y necesidad 3.1.3. Operadores básicos 3.2. Tipos de Datos
Más detallesCONTENIDO DE LA LECCIÓN 15
CONTENIDO DE LA LECCIÓN 15 FUNCIONES SOBRECARGADAS 1. Introducción 2 2. Sobrecarga de una función 2 2.1. Ejemplos 15.1, 15.2, 15.3, 15.4, 15.5 2 3. Cuando utilizar la sobrecarga de funciones 6 4. Plantillas
Más detallesPolimorfismo. Métodos virtuales
Polimorfismo. Métodos virtuales El polimorfismo indica que una variable pasada o esperada puede adoptar múltiples formas. Cuando se habla de polimorfismo en programación orientada a objetos se suelen entender
Más detallesLista de Cotejo. Práctica # 6 Impresión de una Agenda
Lista de Cotejo Práctica # 6 Impresión de una Agenda Nombre de la Materia: Programación Básica Instructor: Ing. Sergio González Pérez Plantel: Grupo: 301-I Conalep Juárez I Alumno: Hugo Armando Espino
Más detallesE/S POR CONSOLA DE C++ Parte I. Elementos Básicos Dr. Oldemar Rodríguez R.
E/S POR CONSOLA DE C++ Parte I. Elementos Básicos Dr. Oldemar Rodríguez R. Dado que C++ es un superconjunto de C, todos los elementos del lenguaje C están contenidos en el lenguaje C++. Esto implica que
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 detallesUnidad IV: Funciones
Definición de Función: Unidad IV: Funciones Una función es un miniprograma dentro de un programa. Es un conjunto de líneas de código bajo un solo nombre, que realizan una tarea específica y puede retornar
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 detalles3. LA HERENCIA. Necesidad de la herencia
página 1 3. LA HERENCIA Necesidad de la herencia La mente humana clasifica los conceptos de acuerdo a dos dimensiones: pertenencia y variedad. Se puede decir que el Ford Fiesta es un tipo de coche (variedad
Más detallesProgramación 1 Problemas 3. Composición condicional
Programación 1 Problemas 3 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 no es bisiesto
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 detallesLENGUAJE DE PROGRAMACION I. Ing. JAVIER ECHEGARAY ROJO Ing. WILDER ROMAN MUNIVE. Ing. Javier Echegaray Rojo / Ing. Wilder Román Munive Pag 1
Ing. JAVIER ECHEGARAY ROJO Ing. WILDER ROMAN MUNIVE Ing. Javier Echegaray Rojo / Ing. Wilder Román Munive Pag 1 CAPITULO 3. ENTRADA Y SALIDA BÁSICA Usando la librería estandar de entrada y salida, seremos
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 detallesTema: Sobrecarga de Operadores.
Programación II. Guía 7 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II Tema: Sobrecarga de Operadores. Objetivos Describir como redefinir (sobrecargar) operadores para que funcionen
Más detallesFunciones II. Fundamentos de Programación Fundamentos de Programación I
Funciones II Fundamentos de Programación Fundamentos de Programación I Ejercicio 1: Escribe una función que transforme un punto en coordenadas polares a cartesianas Entradas: Un punto como coordenadas
Más detallesHerencia y Polimorfismo en C++
Herencia y Polimorfismo en C++ Informática II Fundamentos de Programación 1 Herencia Concepto de "herencia" herencia": Una clase -clase derivada- puede definirse a partir de otra clase ya existente (clase
Más detallesTema 1. Programación modular. Programación Avanzada Ingeniería Técnica en Informática de Gestión Jorge Badenas
Tema 1. Programación modular Programación Avanzada Ingeniería Técnica en Informática de Gestión Jorge Badenas 1.1. Objetivos Repasar brevemente mediante ejemplos los elementos principales del lenguaje
Más detallesASIGNATURA: SISTEMAS INFORMÁTICOS INDUSTRIALES. CURSO 4º GRUPO Julio 2015
2. Problema de Algoritmia (5 puntos - 20 minutos) En una planificación de un proyecto se dispone de la secuencia de 10 tareas T i ordenadas parcialmente que aparece a continuación, y se necesita encontrar
Más detallesProgramación de Computadores 4 Iteraciones y Decisiones. Prof. Javier Cañas. Universidad Técnica Federico Santa María Departamento de Informática
Programación de Computadores 4 Iteraciones y Decisiones Prof. Javier Cañas Universidad Técnica Federico Santa María Departamento de Informática Contenido 1 Introducción 2 Operadores Relacionales y Lógicos
Más detallesProf. Dr. Paul Bustamante
Prácticas de C++ Practica Nº 07 Informática II Fundamentos de Programación Prof. Dr. Paul Bustamante Practica Nº 07 Programación en C++ Pág. 1 ÍNDICE ÍNDICE... 1 1. Introducción... 1 1.1 Ejercicio 1:
Más detallesLISTAS ENLAZADAS DOBLES C++
LISTAS ENLAZADAS DOBLES C++ fichero nodo.h #ifndef NODO_H #define NODO_H #include using namespace std; class Nodo private: int codigo; string nombre; float nota1; float nota2; float nota3; Nodo*
Más detallesPolimorfismo de tipo (en la herencia)
Polimorfismo de tipo (en la herencia) Pablo San Segundo (C-206) pablo.sansegundo@upm.es Índice Overriding (especialización o redefinición) Static bind (enlace estático) Dynamic bind (enlace dinámico) Clases
Más detallesCátedra I Informática Autor I Carlos Bartó
Cátedra I Informática Autor I Carlos Bartó FCEFyN Departamento de Computación Informática Examen - 11-02-2008 Apellido y Nombres: Matrícula: Carrera: ESPECIFICACION: Desarrollar un programa en lenguaje
Más detallesSebastián García Galán
Universidad de Jaén E.U.P. Linares Dpto. Telecomunicaciones Área de Ingeniería Telemática Sebastián García Galán sgalan@ujaen.es Variables y tipos de datos Operaciones y operadores Clases y objetos Tipos
Más detallesCONTENIDO. Programación orientada a objetos - POO. Clases. Constructores y destructores. Definiciones. Entrada y salida
INFORMÁTICA II 1 CONTENIDO 2 1 Programación orientada a objetos - POO 2 Clases 3 Constructores y destructores 4 Definiciones 5 Entrada y salida PROGRAMACIÓN ORIENTADA A OBJETOS Los lenguajes de programación
Más detallesProgramación C++ Tipos Parametrizados. Dr. Oldemar Rodríguez Rojas Escuela de Informática Universidad Nacional
Programación C++ Tipos Parametrizados Dr. Oldemar Rodríguez Rojas Escuela de Informática Universidad Nacional Tipos (clases) parametrizados Templates La noción de "templates" provee los llamados algunas
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 detallesUNIVERSIDAD POLITÉCNICA DE MADRID. Actividad 1. Manejo del entorno de desarrollo (IDE).
Objetivos: UNIVERSIDAD POLITÉCNICA DE MADRID Actividad 1. Manejo del entorno de desarrollo (IDE). Adquirir soltura en el manejo del entorno de desarrollo (IDE Integrated Development Environment) Eclipse
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 detallesUnidad 2 Recursividad. 2.1 Definición 2.2 Procedimientos Recursivos 2.3 Ejemplos de Casos Recursivos
Unidad 2 Recursividad 2.1 Definición 2.2 Procedimientos Recursivos 2.3 Ejemplos de Casos Recursivos 2.1 Definición de Recursividad La Recursividad es una técnica de programación muy poderosa usada ampliamente
Más detallesPauta Lectura 1 CC51H: Programación Orientada a Objetos
Pauta Lectura 1 CC51H: Programación Orientada a Objetos Profesora: Nancy Hitschfeld Kahler. Ayudante: Diego Díaz Espinoza May 2, 2010 1. Pregunta uno (ver código fuente adjunto) La principal diferencia
Más detallesTema: Herencia Simple y Múltiple en C++.
Programación II. Guía 9 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II Tema: Herencia Simple y Múltiple en C++. Objetivos Específicos Crear clases a través de la herencia de clases
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 Recursividad: La recursividad es una técnica de programación
Más detallesProf. Dr. Paul Bustamante
Prácticas de C++ Practica Nº 6 Informática II Fundamentos de Programación Prof. Dr. Paul Bustamante Practica Nº 6 Programación en C++ Pág. 1 ÍNDICE ÍNDICE... 1 1. Introducción... 1 1.1 Ejercicio 1: Clase
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. 5 LABORATORIO DE NOMBRE DE LA PRÁCTICA
Más detallesTema: Tipos Abstractos de Datos (TAD s) en C++.
Programación II. Guía 12 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II Tema: Tipos Abstractos de Datos (TAD s) en C++. Objetivos Específicos Explicar el concepto "Tipo Abstracto
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 detalles