SlideShare uma empresa Scribd logo
1 de 37
Lenguaje C++
Lenguaje C++
Introducción
 B. Stroustrup, mediados de los 80, AT&T
 Paso de la programación tradicional (C) a estilos de
abstracción de datos y orientación a objetos
 Conserva características del C y añade nuevos conceptos
Lenguaje C++
Extensiones respecto al C
 No orientadas a objeto
 Orientadas a objetos
Lenguaje C++
Extensiones respecto al C
 No orientadas a objeto
 Mejoras en entrada/salida - streams
 Sobrecarga de funciones y operadores
 Parámetros por defecto. Referencias
Lenguaje C++
 Organización de programas
 Ficheros de declaraciones (.h)
 Del sistema
 Del usuario (#ifndef .... #define ..... #endif)
 Ficheros de código fuente (.cc, .cpp)
Lenguaje C++
Scope (alcance)
 Fichero: declaraciones que no pertenecen a función o
clase alguna
 Función: etiquetas
 Local: cualquier nombre declarado en un bloque pertenece
al bloque.
 Clase: declaraciones asociadas a una clase
Cada variable tiene un
“scope” o un contexto
Lenguaje C++
 Operadores y sentencias
 Sentencias
 Misma sintaxis y semántica que las de C
 Operadores idem sentencias excepto:
 new, delete, delete[], ::
 <<, >>
 Sobrecarga
Lenguaje C++
Estructura básica de un
programa
#include<iostream.h>
main()
{//inicio
cout << “Hello world”;
}//fin
Lenguaje C++
Elementos del programa
 COMENTARIOS
 // Comentario de una sola línea
 /* Comentario multilínea */
 BLOQUES DE CÓDIGO
 { Todos los bloques de código van
entre corchetes }
 FIN DE LINEA
 Todas las instrucciones terminan con
un punto y coma
Lenguaje C++
Tipo básico de datos
 Tipo de dato bool tiene dos
valores asociados true o false
 DECLARACIÓN DE UNA VARIABLE
 <Tipo de dato>
Nombre_variable;
 INICIALIZACION DE UNA
VARIABLE
 <Tipo de dato>
Nombre_variable = [valor];
 EJEMPLO:
 int variable1;
 bool variable2=true;
Lenguaje C++
Tipo básico de datos
 Variables y aritmética.
 Todo nombre y/o expresión tiene un tipo.
 El tipo determina las operaciones que se pueden
realizar con el.
 Conversiones implícitas.
 En asignaciones y operaciones algebraicas el lenguaje
lleva a cabo todas las conversiones implícitas que
faciliten el uso y sean seguras.
Lenguaje C++
Arreglos
 Un arreglo es un conjunto de tipos de datos básicos
 DECLARACIÓN DE UN ARREGLO
 <Tipo de dato básico> Nombre_variable[Número de
elementos];
 INICIALIZACION DE UN ARREGLO
 <Tipo de dato> Nombre_variable = {valor1, valor2, …,
valorN}];
 EJEMPLO:
 char arreglo1[10];
 float arreglo2={1.5, 2.3, 6,7};
Lenguaje C++
Arreglos Multidimencionales
 DECLARACIÓN DE UN ARREGLO MULTIDIMENCIONAL
 <Tipo de dato básico> Nombre_variable[Número
de elementos][Numero de elementos];
 INICIALIZACION DE UN ARREGLO
MULTIDIMENCIONAL
 <Tipo de dato> Nombre_variable = { {valor1,
valor2, …, valorN}, {valor1, valor2, …, valorN} };
 EJEMPLO:
 char arreglo1[10][10];
 int arreglo2[]={{1,2,3},{4,5,6}{7,8,9}};
Lenguaje C++
Apuntadores y vectores
 Punteros y vectores.
char v[10]; //vector de 10 caracteres (0 a 9)
char *p; // puntero a un carácter
p = &v[3]; //p apunta al cuarto elemento de v
 punteros - operaciones asociadas
 int *p; //puntero a entero
 int **p; //puntero a puntero a entero
 int (*vp) [10]; //puntero a vector de 10 enteros
 int (*fp) ( char, char *);// puntero a función
Lenguaje C++
Tipos definidos por el usuario
 ESTRUCTURAS (Registros)
struct date_s {
int day, month, year;
} aDate;
La definición de arriba de aDate es también la
declaración de una estructura llamada date_s.
Podemos definir otras variables de este tipo
referenciando la estructura por el nombre:
struct date_s anotherDate;
 Enumeraciones
 Clases
Lenguaje C++
Instrucciones de control de flujo
 EJEMPLO
 for(int i=0; i<5; i++){
cout << “Hello
world”<<i;
 }
Lenguaje C++
Operadores
Los operadores de
incremento ++ y --
pueden ser explicados
por medio del siguiente
ejemplo. Si tienes la
siguiente secuencia de
instrucciones
a = a + 1; b = a;
Se puede puedes usar
b = a++;
b = ++a;
Lenguaje C++
Sobrecarga de operadores
+ - * / % ^ & | ~ ! = < > += -= *= /= %=
^= &=
|= << >> >>= <<= == != <= >= && ||
++ --
->* -> , [ ] ( ) new new[ ] delete
delete[ ]
No se sobrecargan:
::
.
.*
Lenguaje C++
Sobrecarga de operadores
class complex {
double re, im;
public:
complex(double r, double i) : re(r), im(i){}
complex operator+(complex);
complex operator*(complex);
bool operator==(complex);
bool operator<(complex);
};
void f()
{ complex a(1, 3.1);
complex b(1.2, 2);
complex c = b;
if(a==b)
a = b + c;
b = b + c * a;
c = a * b + complex(1,2);
}
Lenguaje C++
Funciones
 Regulares (similares a una función C).
 Miembros (asociadas a una clase).
 Nombre, lista de argumentos, tipo de retorno y cuerpo.
 int miFuncion(int a); //firma o declaración
 int miFuncion(int a){ //definición
cout<<a;
 }
Lenguaje C++
Funciones
extern int pow( float, int);
int main()
{
for (int i = 0; i < 10; i++)
cout << pow( 2, 5) << endl;
}
Lenguaje C++
Funciones
 Paso de argumentos
 Por valor - seguridad
 copiado en el almacenamiento local de la función
 la función accede a la copia
 Por referencia - velocidad - retornos múltiples
 se copia la dirección del objeto que se esta pasando
 la función accede al objeto
 Por referencia constante - seguridad + velocidad
 Vectores: paso por referencia
Lenguaje C++
Funciones
 Paso de argumentos
 Por valor
char a = ‘a’;
miFuncion(a);
 Por referencia
char a = ‘a’;
miFuncion(&a);
 Vectores: paso por referencia
char a[] = {‘a’,’b’}
miFuncion(a);
Lenguaje C++
Funciones
 Sobrecarga de nombres.
 int max(int, int);
 int max( int, int, int);
 int max(int *, int);
 int max(float, int);
 int max(int, float);
Lenguaje C++
Soporte para abstracción de datos
 Definición de un conjunto de operaciones
asociadas a un tipo.
 Restricción del conjunto de operaciones que
se pueden realizar sobre un tipo a las
definidas para el mismo.
 CLASE
 nombre
 datos miembros
 funciones miembro
 control de acceso
Lenguaje C++
Soporte para abstracción de
datos
 Inicialización y destrucción.
 Inicialización y asignación.
 Patrones.
 Conversiones de tipo
complex a = complex(1);
 Múltiples implementaciones
Lenguaje C++
Soporte para orientacion a
objetos
 Funciones virtuales. Polimorfismo.
 Clases abstractas.
 Clases patrón.
 Herencia simple y múltiple.
 Encapsulado.
Lenguaje C++
 Los objetos se crean al llegar a su definición.
 Los objetos se destruyen cuando salen del bloque.
 Los objetos globales se crean una sola vez y se destruyen al terminar el
programa.
 Los objetos static son similares a los globales.
Lenguaje C++
 Almacenamiento de objetos
 estático (asignada al iniciarse el programa)
 automático (asociada al bloque)
 en la memoria disponible (obtenida con new)
Lenguaje C++
Clases.
Tipo abstracto de datos definido por el usuario
Interface e implementación
class X {
private:
int i;
public:
f();
protected:
g();
};
struct X {
private:
int i;
public:
f();
protected:
g();
};
Lenguaje C++
clases
 Constructores
 Funciones con el mismo nombre de la clase pero que no
retornan nada.
 Constructor de copia
 Constructor por defecto
 Constructores como conversores de tipo
 Destructores
 virtuales
Lenguaje C++
clases
 CONSTRUCTORES
 class Point {
 int _x, _y;
 public: Point() { _x = _y = 0; }
 void setX(const int val);
 void setY(const int val);
 int getX() { return _x; }
 int getY() { return _y; }
 };
Lenguaje C++
clases
 DESTRUCTORES
 class Point {
 int _x, _y;
 public:
 Point() { _x = _y = 0; }
 Point(const int x, const int y) { _x = x; _y = y; }
 ~Point() { /* ¡Nada qué hacer! */ }
 void setX(const int val);
 void setY(const int val);
 int getX() { return _x; }
 int getY() { return _y; }
 };
Lenguaje C++
clases
 Friend
 Nosotros podemos definir que funciones o clases sean amigos de una clase
para permitirles acceso directo a sus miembros de datos privados. Por
ejemplo, que la función para el operador + tuviese acceso a los miembros de
datos privados _real e _imag de la clase Complex. Con ese fin declaramos que
el operador + sea amigo de la clase Complex:
 class Complex {
 ... public: ...
 friend Complex operator +( const Complex &, const Complex & );
 };
 Complex operator +(const Complex &op1, const Complex &op2) {
 double real = op1._real + op2._real, imag = op1._imag + op2._imag;
return(Complex(real, imag));
 }
Lenguaje C++
clases
 Construcción de objetos
 automáticos
 variables locales: se ejecuta su constructor cada vez
que el programa pasa por la declaración
 secuencia de construcción - destrucción
 inicialización y asignación
 en memoria disponible
 new, delete
 int* ip = new int(7);
 delete ip;
 int* iap = new int[10];
 delete [] iap;
Lenguaje C++
clases y herencia
 class Point3D : public Point {
 int _z;
 public:
 Point3D() { setX(0); setY(0); _z = 0; }
 Point3D(const int x, const int y, const int z) {
setX(x); setY(y); _z = z; }
 ~Point3D() { /* Nada que hacer */ }
 int getZ() { return _z; }
 void setZ(const int val) { _z = val; }
 };
Lenguaje C++
clases y herencia múltiple
 class DrawableString : public Point, public DrawableObject {
 ... public:
 DrawableString(...){ ... }
 ~DrawableString() { ... } ...
 };

Mais conteúdo relacionado

Mais procurados (20)

Apuntes generación de codigo intermedio
Apuntes generación de codigo intermedioApuntes generación de codigo intermedio
Apuntes generación de codigo intermedio
 
Generación código intermedio 2
Generación código intermedio 2Generación código intermedio 2
Generación código intermedio 2
 
Funciones en Lenguaje C
Funciones en Lenguaje CFunciones en Lenguaje C
Funciones en Lenguaje C
 
Tutorial C++
Tutorial C++Tutorial C++
Tutorial C++
 
Lenguajec diapositivas
Lenguajec diapositivasLenguajec diapositivas
Lenguajec diapositivas
 
ESTRUCTURA BÁSICA PARA C++
ESTRUCTURA BÁSICA PARA C++ESTRUCTURA BÁSICA PARA C++
ESTRUCTURA BÁSICA PARA C++
 
Elementos basicos c
Elementos basicos cElementos basicos c
Elementos basicos c
 
Introducción a Python
Introducción a PythonIntroducción a Python
Introducción a Python
 
Operaciones Basicas C++
Operaciones Basicas C++Operaciones Basicas C++
Operaciones Basicas C++
 
A1 u1-16230227
A1 u1-16230227A1 u1-16230227
A1 u1-16230227
 
Programación C++ - DEV C++
Programación C++ - DEV C++Programación C++ - DEV C++
Programación C++ - DEV C++
 
Ejercicios propuestos
Ejercicios propuestosEjercicios propuestos
Ejercicios propuestos
 
Conceptos de c
Conceptos de cConceptos de c
Conceptos de c
 
C sharp intro0
C sharp intro0C sharp intro0
C sharp intro0
 
Lenguaje de-programación-c
Lenguaje de-programación-cLenguaje de-programación-c
Lenguaje de-programación-c
 
Introducción a C SHARP
Introducción a C SHARPIntroducción a C SHARP
Introducción a C SHARP
 
Programación en C++
Programación en C++Programación en C++
Programación en C++
 
Lenguaje Borland C - Estructura y Componentes
Lenguaje Borland C - Estructura y ComponentesLenguaje Borland C - Estructura y Componentes
Lenguaje Borland C - Estructura y Componentes
 
C sharp intro1
C sharp intro1C sharp intro1
C sharp intro1
 
Funciones C++
Funciones C++Funciones C++
Funciones C++
 

Semelhante a C ++

Semelhante a C ++ (20)

C ++.ppt
C ++.pptC ++.ppt
C ++.ppt
 
Lenguajes de Programación: Clases y objetos
Lenguajes de Programación: Clases y objetosLenguajes de Programación: Clases y objetos
Lenguajes de Programación: Clases y objetos
 
Lenguaje c ++ guía para programadores
Lenguaje c ++  guía para programadoresLenguaje c ++  guía para programadores
Lenguaje c ++ guía para programadores
 
Trabajo tutorial de visual C++
Trabajo tutorial de visual C++Trabajo tutorial de visual C++
Trabajo tutorial de visual C++
 
Programación C++.pdf
Programación C++.pdfProgramación C++.pdf
Programación C++.pdf
 
librerias.pptx
librerias.pptxlibrerias.pptx
librerias.pptx
 
Estructura basica de_c_
Estructura basica de_c_Estructura basica de_c_
Estructura basica de_c_
 
Estructura basica de_c_
Estructura basica de_c_Estructura basica de_c_
Estructura basica de_c_
 
Poo 2009 u2_introd_a_la_poo_2
Poo 2009 u2_introd_a_la_poo_2Poo 2009 u2_introd_a_la_poo_2
Poo 2009 u2_introd_a_la_poo_2
 
Estructura basica para_c_
Estructura basica para_c_Estructura basica para_c_
Estructura basica para_c_
 
Estructura(2)
Estructura(2)Estructura(2)
Estructura(2)
 
Estructura
EstructuraEstructura
Estructura
 
Estructura basica para_c_(2)
Estructura basica para_c_(2)Estructura basica para_c_(2)
Estructura basica para_c_(2)
 
Conceptos básicos de un lenguaje de programación
Conceptos básicos de un lenguaje de programaciónConceptos básicos de un lenguaje de programación
Conceptos básicos de un lenguaje de programación
 
Repaso del lenguaje
Repaso del lenguajeRepaso del lenguaje
Repaso del lenguaje
 
JAVA_BASICO_modo_consola_introduccion.pptx
JAVA_BASICO_modo_consola_introduccion.pptxJAVA_BASICO_modo_consola_introduccion.pptx
JAVA_BASICO_modo_consola_introduccion.pptx
 
Repaso del lenguaje C++
Repaso del lenguaje C++Repaso del lenguaje C++
Repaso del lenguaje C++
 
Elementos basicos c
Elementos basicos cElementos basicos c
Elementos basicos c
 
Pooc 1
Pooc 1Pooc 1
Pooc 1
 
Mynor Alexander Hernandez Canuz
Mynor Alexander Hernandez CanuzMynor Alexander Hernandez Canuz
Mynor Alexander Hernandez Canuz
 

Mais de JOHN BONILLA

Tipos de datos primitivos en c++
Tipos de datos primitivos en c++Tipos de datos primitivos en c++
Tipos de datos primitivos en c++JOHN BONILLA
 
Segundo algoritmos
Segundo algoritmosSegundo algoritmos
Segundo algoritmosJOHN BONILLA
 
Ejercicio vector y matriz
Ejercicio vector y matrizEjercicio vector y matriz
Ejercicio vector y matrizJOHN BONILLA
 
Vamos a realizar_una_animacion_por_escenas_con_botones
Vamos a realizar_una_animacion_por_escenas_con_botonesVamos a realizar_una_animacion_por_escenas_con_botones
Vamos a realizar_una_animacion_por_escenas_con_botonesJOHN BONILLA
 
Guia para trabajar_con_macros_en_excel
Guia para trabajar_con_macros_en_excelGuia para trabajar_con_macros_en_excel
Guia para trabajar_con_macros_en_excelJOHN BONILLA
 
Macros visualbasicparaexcel
Macros visualbasicparaexcelMacros visualbasicparaexcel
Macros visualbasicparaexcelJOHN BONILLA
 
Guia macros y_formularios
Guia macros y_formulariosGuia macros y_formularios
Guia macros y_formulariosJOHN BONILLA
 
Guia educacion distancia_tutores
Guia educacion distancia_tutoresGuia educacion distancia_tutores
Guia educacion distancia_tutoresJOHN BONILLA
 
Formato acta de_acuerdo_pedagogico-informatica y convergencia-2014_a-sabado- ...
Formato acta de_acuerdo_pedagogico-informatica y convergencia-2014_a-sabado- ...Formato acta de_acuerdo_pedagogico-informatica y convergencia-2014_a-sabado- ...
Formato acta de_acuerdo_pedagogico-informatica y convergencia-2014_a-sabado- ...JOHN BONILLA
 
Ciclodevidadelproyectoyorganizacin 130415100901-phpapp02
Ciclodevidadelproyectoyorganizacin 130415100901-phpapp02Ciclodevidadelproyectoyorganizacin 130415100901-phpapp02
Ciclodevidadelproyectoyorganizacin 130415100901-phpapp02JOHN BONILLA
 
Sigloxxarquitecturaorganicista
SigloxxarquitecturaorganicistaSigloxxarquitecturaorganicista
SigloxxarquitecturaorganicistaJOHN BONILLA
 
Sigloxxarquitecturaorganicista
SigloxxarquitecturaorganicistaSigloxxarquitecturaorganicista
SigloxxarquitecturaorganicistaJOHN BONILLA
 
Sigloxxpinturaexpresionismoabstractoamericano
SigloxxpinturaexpresionismoabstractoamericanoSigloxxpinturaexpresionismoabstractoamericano
SigloxxpinturaexpresionismoabstractoamericanoJOHN BONILLA
 
Sigloxxarquitecturaracionalista
SigloxxarquitecturaracionalistaSigloxxarquitecturaracionalista
SigloxxarquitecturaracionalistaJOHN BONILLA
 
Sigloxixpostimpresionismo
SigloxixpostimpresionismoSigloxixpostimpresionismo
SigloxixpostimpresionismoJOHN BONILLA
 
Pinturaxxsurrealismo
PinturaxxsurrealismoPinturaxxsurrealismo
PinturaxxsurrealismoJOHN BONILLA
 
Fauvismoexpresionismo
FauvismoexpresionismoFauvismoexpresionismo
FauvismoexpresionismoJOHN BONILLA
 

Mais de JOHN BONILLA (20)

Tipos de datos primitivos en c++
Tipos de datos primitivos en c++Tipos de datos primitivos en c++
Tipos de datos primitivos en c++
 
Segundo algoritmos
Segundo algoritmosSegundo algoritmos
Segundo algoritmos
 
Ejercicio vector y matriz
Ejercicio vector y matrizEjercicio vector y matriz
Ejercicio vector y matriz
 
Vamos a realizar_una_animacion_por_escenas_con_botones
Vamos a realizar_una_animacion_por_escenas_con_botonesVamos a realizar_una_animacion_por_escenas_con_botones
Vamos a realizar_una_animacion_por_escenas_con_botones
 
Guia para trabajar_con_macros_en_excel
Guia para trabajar_con_macros_en_excelGuia para trabajar_con_macros_en_excel
Guia para trabajar_con_macros_en_excel
 
Macros visualbasicparaexcel
Macros visualbasicparaexcelMacros visualbasicparaexcel
Macros visualbasicparaexcel
 
Guia macros y_formularios
Guia macros y_formulariosGuia macros y_formularios
Guia macros y_formularios
 
Formularios
FormulariosFormularios
Formularios
 
Guia educacion distancia_tutores
Guia educacion distancia_tutoresGuia educacion distancia_tutores
Guia educacion distancia_tutores
 
Formato acta de_acuerdo_pedagogico-informatica y convergencia-2014_a-sabado- ...
Formato acta de_acuerdo_pedagogico-informatica y convergencia-2014_a-sabado- ...Formato acta de_acuerdo_pedagogico-informatica y convergencia-2014_a-sabado- ...
Formato acta de_acuerdo_pedagogico-informatica y convergencia-2014_a-sabado- ...
 
Ciclodevidadelproyectoyorganizacin 130415100901-phpapp02
Ciclodevidadelproyectoyorganizacin 130415100901-phpapp02Ciclodevidadelproyectoyorganizacin 130415100901-phpapp02
Ciclodevidadelproyectoyorganizacin 130415100901-phpapp02
 
Sigloxxarquitecturaorganicista
SigloxxarquitecturaorganicistaSigloxxarquitecturaorganicista
Sigloxxarquitecturaorganicista
 
Sigloxxarquitecturaorganicista
SigloxxarquitecturaorganicistaSigloxxarquitecturaorganicista
Sigloxxarquitecturaorganicista
 
Sigloxxpinturaexpresionismoabstractoamericano
SigloxxpinturaexpresionismoabstractoamericanoSigloxxpinturaexpresionismoabstractoamericano
Sigloxxpinturaexpresionismoabstractoamericano
 
Sigloxxescultura
SigloxxesculturaSigloxxescultura
Sigloxxescultura
 
Sigloxxarquitecturaracionalista
SigloxxarquitecturaracionalistaSigloxxarquitecturaracionalista
Sigloxxarquitecturaracionalista
 
Sigloxixpostimpresionismo
SigloxixpostimpresionismoSigloxixpostimpresionismo
Sigloxixpostimpresionismo
 
Pinturaxxsurrealismo
PinturaxxsurrealismoPinturaxxsurrealismo
Pinturaxxsurrealismo
 
Fauvismoexpresionismo
FauvismoexpresionismoFauvismoexpresionismo
Fauvismoexpresionismo
 
Cubismo picasso
Cubismo picassoCubismo picasso
Cubismo picasso
 

Último

ECONOMIA APLICADA SEMANA 555555555544.pdf
ECONOMIA APLICADA SEMANA 555555555544.pdfECONOMIA APLICADA SEMANA 555555555544.pdf
ECONOMIA APLICADA SEMANA 555555555544.pdfmatepura
 
Flujo multifásico en tuberias de ex.pptx
Flujo multifásico en tuberias de ex.pptxFlujo multifásico en tuberias de ex.pptx
Flujo multifásico en tuberias de ex.pptxEduardoSnchezHernnde5
 
PPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptx
PPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptxPPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptx
PPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptxSergioGJimenezMorean
 
Propositos del comportamiento de fases y aplicaciones
Propositos del comportamiento de fases y aplicacionesPropositos del comportamiento de fases y aplicaciones
Propositos del comportamiento de fases y aplicaciones025ca20
 
Reporte de Exportaciones de Fibra de alpaca
Reporte de Exportaciones de Fibra de alpacaReporte de Exportaciones de Fibra de alpaca
Reporte de Exportaciones de Fibra de alpacajeremiasnifla
 
Comite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptxComite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptxClaudiaPerez86192
 
Proyecto de iluminación "guia" para proyectos de ingeniería eléctrica
Proyecto de iluminación "guia" para proyectos de ingeniería eléctricaProyecto de iluminación "guia" para proyectos de ingeniería eléctrica
Proyecto de iluminación "guia" para proyectos de ingeniería eléctricaXjoseantonio01jossed
 
hitos del desarrollo psicomotor en niños.docx
hitos del desarrollo psicomotor en niños.docxhitos del desarrollo psicomotor en niños.docx
hitos del desarrollo psicomotor en niños.docxMarcelaArancibiaRojo
 
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdf
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdfReporte de simulación de flujo del agua en un volumen de control MNVA.pdf
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdfMikkaelNicolae
 
Magnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principiosMagnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principiosMarceloQuisbert6
 
tema05 estabilidad en barras mecanicas.pdf
tema05 estabilidad en barras mecanicas.pdftema05 estabilidad en barras mecanicas.pdf
tema05 estabilidad en barras mecanicas.pdfvictoralejandroayala2
 
aCARGA y FUERZA UNI 19 marzo 2024-22.ppt
aCARGA y FUERZA UNI 19 marzo 2024-22.pptaCARGA y FUERZA UNI 19 marzo 2024-22.ppt
aCARGA y FUERZA UNI 19 marzo 2024-22.pptCRISTOFERSERGIOCANAL
 
presentacion medidas de seguridad riesgo eléctrico
presentacion medidas de seguridad riesgo eléctricopresentacion medidas de seguridad riesgo eléctrico
presentacion medidas de seguridad riesgo eléctricoalexcala5
 
Manual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdfManual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdfedsonzav8
 
Calavera calculo de estructuras de cimentacion.pdf
Calavera calculo de estructuras de cimentacion.pdfCalavera calculo de estructuras de cimentacion.pdf
Calavera calculo de estructuras de cimentacion.pdfyoseka196
 
Rendimiento-de-Maquinaria y precios unitarios para la construcción de una ma...
Rendimiento-de-Maquinaria y precios unitarios  para la construcción de una ma...Rendimiento-de-Maquinaria y precios unitarios  para la construcción de una ma...
Rendimiento-de-Maquinaria y precios unitarios para la construcción de una ma...RichardRivas28
 
¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx
¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx
¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptxguillermosantana15
 
Introducción a los sistemas neumaticos.ppt
Introducción a los sistemas neumaticos.pptIntroducción a los sistemas neumaticos.ppt
Introducción a los sistemas neumaticos.pptEduardoCorado
 
PPT ELABORARACION DE ADOBES 2023 (1).pdf
PPT ELABORARACION DE ADOBES 2023 (1).pdfPPT ELABORARACION DE ADOBES 2023 (1).pdf
PPT ELABORARACION DE ADOBES 2023 (1).pdfalexquispenieto2
 
Falla de san andres y el gran cañon : enfoque integral
Falla de san andres y el gran cañon : enfoque integralFalla de san andres y el gran cañon : enfoque integral
Falla de san andres y el gran cañon : enfoque integralsantirangelcor
 

Último (20)

ECONOMIA APLICADA SEMANA 555555555544.pdf
ECONOMIA APLICADA SEMANA 555555555544.pdfECONOMIA APLICADA SEMANA 555555555544.pdf
ECONOMIA APLICADA SEMANA 555555555544.pdf
 
Flujo multifásico en tuberias de ex.pptx
Flujo multifásico en tuberias de ex.pptxFlujo multifásico en tuberias de ex.pptx
Flujo multifásico en tuberias de ex.pptx
 
PPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptx
PPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptxPPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptx
PPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptx
 
Propositos del comportamiento de fases y aplicaciones
Propositos del comportamiento de fases y aplicacionesPropositos del comportamiento de fases y aplicaciones
Propositos del comportamiento de fases y aplicaciones
 
Reporte de Exportaciones de Fibra de alpaca
Reporte de Exportaciones de Fibra de alpacaReporte de Exportaciones de Fibra de alpaca
Reporte de Exportaciones de Fibra de alpaca
 
Comite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptxComite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptx
 
Proyecto de iluminación "guia" para proyectos de ingeniería eléctrica
Proyecto de iluminación "guia" para proyectos de ingeniería eléctricaProyecto de iluminación "guia" para proyectos de ingeniería eléctrica
Proyecto de iluminación "guia" para proyectos de ingeniería eléctrica
 
hitos del desarrollo psicomotor en niños.docx
hitos del desarrollo psicomotor en niños.docxhitos del desarrollo psicomotor en niños.docx
hitos del desarrollo psicomotor en niños.docx
 
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdf
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdfReporte de simulación de flujo del agua en un volumen de control MNVA.pdf
Reporte de simulación de flujo del agua en un volumen de control MNVA.pdf
 
Magnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principiosMagnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principios
 
tema05 estabilidad en barras mecanicas.pdf
tema05 estabilidad en barras mecanicas.pdftema05 estabilidad en barras mecanicas.pdf
tema05 estabilidad en barras mecanicas.pdf
 
aCARGA y FUERZA UNI 19 marzo 2024-22.ppt
aCARGA y FUERZA UNI 19 marzo 2024-22.pptaCARGA y FUERZA UNI 19 marzo 2024-22.ppt
aCARGA y FUERZA UNI 19 marzo 2024-22.ppt
 
presentacion medidas de seguridad riesgo eléctrico
presentacion medidas de seguridad riesgo eléctricopresentacion medidas de seguridad riesgo eléctrico
presentacion medidas de seguridad riesgo eléctrico
 
Manual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdfManual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdf
 
Calavera calculo de estructuras de cimentacion.pdf
Calavera calculo de estructuras de cimentacion.pdfCalavera calculo de estructuras de cimentacion.pdf
Calavera calculo de estructuras de cimentacion.pdf
 
Rendimiento-de-Maquinaria y precios unitarios para la construcción de una ma...
Rendimiento-de-Maquinaria y precios unitarios  para la construcción de una ma...Rendimiento-de-Maquinaria y precios unitarios  para la construcción de una ma...
Rendimiento-de-Maquinaria y precios unitarios para la construcción de una ma...
 
¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx
¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx
¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx
 
Introducción a los sistemas neumaticos.ppt
Introducción a los sistemas neumaticos.pptIntroducción a los sistemas neumaticos.ppt
Introducción a los sistemas neumaticos.ppt
 
PPT ELABORARACION DE ADOBES 2023 (1).pdf
PPT ELABORARACION DE ADOBES 2023 (1).pdfPPT ELABORARACION DE ADOBES 2023 (1).pdf
PPT ELABORARACION DE ADOBES 2023 (1).pdf
 
Falla de san andres y el gran cañon : enfoque integral
Falla de san andres y el gran cañon : enfoque integralFalla de san andres y el gran cañon : enfoque integral
Falla de san andres y el gran cañon : enfoque integral
 

C ++

  • 2. Lenguaje C++ Introducción  B. Stroustrup, mediados de los 80, AT&T  Paso de la programación tradicional (C) a estilos de abstracción de datos y orientación a objetos  Conserva características del C y añade nuevos conceptos
  • 3. Lenguaje C++ Extensiones respecto al C  No orientadas a objeto  Orientadas a objetos
  • 4. Lenguaje C++ Extensiones respecto al C  No orientadas a objeto  Mejoras en entrada/salida - streams  Sobrecarga de funciones y operadores  Parámetros por defecto. Referencias
  • 5. Lenguaje C++  Organización de programas  Ficheros de declaraciones (.h)  Del sistema  Del usuario (#ifndef .... #define ..... #endif)  Ficheros de código fuente (.cc, .cpp)
  • 6. Lenguaje C++ Scope (alcance)  Fichero: declaraciones que no pertenecen a función o clase alguna  Función: etiquetas  Local: cualquier nombre declarado en un bloque pertenece al bloque.  Clase: declaraciones asociadas a una clase Cada variable tiene un “scope” o un contexto
  • 7. Lenguaje C++  Operadores y sentencias  Sentencias  Misma sintaxis y semántica que las de C  Operadores idem sentencias excepto:  new, delete, delete[], ::  <<, >>  Sobrecarga
  • 8. Lenguaje C++ Estructura básica de un programa #include<iostream.h> main() {//inicio cout << “Hello world”; }//fin
  • 9. Lenguaje C++ Elementos del programa  COMENTARIOS  // Comentario de una sola línea  /* Comentario multilínea */  BLOQUES DE CÓDIGO  { Todos los bloques de código van entre corchetes }  FIN DE LINEA  Todas las instrucciones terminan con un punto y coma
  • 10. Lenguaje C++ Tipo básico de datos  Tipo de dato bool tiene dos valores asociados true o false  DECLARACIÓN DE UNA VARIABLE  <Tipo de dato> Nombre_variable;  INICIALIZACION DE UNA VARIABLE  <Tipo de dato> Nombre_variable = [valor];  EJEMPLO:  int variable1;  bool variable2=true;
  • 11. Lenguaje C++ Tipo básico de datos  Variables y aritmética.  Todo nombre y/o expresión tiene un tipo.  El tipo determina las operaciones que se pueden realizar con el.  Conversiones implícitas.  En asignaciones y operaciones algebraicas el lenguaje lleva a cabo todas las conversiones implícitas que faciliten el uso y sean seguras.
  • 12. Lenguaje C++ Arreglos  Un arreglo es un conjunto de tipos de datos básicos  DECLARACIÓN DE UN ARREGLO  <Tipo de dato básico> Nombre_variable[Número de elementos];  INICIALIZACION DE UN ARREGLO  <Tipo de dato> Nombre_variable = {valor1, valor2, …, valorN}];  EJEMPLO:  char arreglo1[10];  float arreglo2={1.5, 2.3, 6,7};
  • 13. Lenguaje C++ Arreglos Multidimencionales  DECLARACIÓN DE UN ARREGLO MULTIDIMENCIONAL  <Tipo de dato básico> Nombre_variable[Número de elementos][Numero de elementos];  INICIALIZACION DE UN ARREGLO MULTIDIMENCIONAL  <Tipo de dato> Nombre_variable = { {valor1, valor2, …, valorN}, {valor1, valor2, …, valorN} };  EJEMPLO:  char arreglo1[10][10];  int arreglo2[]={{1,2,3},{4,5,6}{7,8,9}};
  • 14. Lenguaje C++ Apuntadores y vectores  Punteros y vectores. char v[10]; //vector de 10 caracteres (0 a 9) char *p; // puntero a un carácter p = &v[3]; //p apunta al cuarto elemento de v  punteros - operaciones asociadas  int *p; //puntero a entero  int **p; //puntero a puntero a entero  int (*vp) [10]; //puntero a vector de 10 enteros  int (*fp) ( char, char *);// puntero a función
  • 15. Lenguaje C++ Tipos definidos por el usuario  ESTRUCTURAS (Registros) struct date_s { int day, month, year; } aDate; La definición de arriba de aDate es también la declaración de una estructura llamada date_s. Podemos definir otras variables de este tipo referenciando la estructura por el nombre: struct date_s anotherDate;  Enumeraciones  Clases
  • 16. Lenguaje C++ Instrucciones de control de flujo  EJEMPLO  for(int i=0; i<5; i++){ cout << “Hello world”<<i;  }
  • 17. Lenguaje C++ Operadores Los operadores de incremento ++ y -- pueden ser explicados por medio del siguiente ejemplo. Si tienes la siguiente secuencia de instrucciones a = a + 1; b = a; Se puede puedes usar b = a++; b = ++a;
  • 18. Lenguaje C++ Sobrecarga de operadores + - * / % ^ & | ~ ! = < > += -= *= /= %= ^= &= |= << >> >>= <<= == != <= >= && || ++ -- ->* -> , [ ] ( ) new new[ ] delete delete[ ] No se sobrecargan: :: . .*
  • 19. Lenguaje C++ Sobrecarga de operadores class complex { double re, im; public: complex(double r, double i) : re(r), im(i){} complex operator+(complex); complex operator*(complex); bool operator==(complex); bool operator<(complex); }; void f() { complex a(1, 3.1); complex b(1.2, 2); complex c = b; if(a==b) a = b + c; b = b + c * a; c = a * b + complex(1,2); }
  • 20. Lenguaje C++ Funciones  Regulares (similares a una función C).  Miembros (asociadas a una clase).  Nombre, lista de argumentos, tipo de retorno y cuerpo.  int miFuncion(int a); //firma o declaración  int miFuncion(int a){ //definición cout<<a;  }
  • 21. Lenguaje C++ Funciones extern int pow( float, int); int main() { for (int i = 0; i < 10; i++) cout << pow( 2, 5) << endl; }
  • 22. Lenguaje C++ Funciones  Paso de argumentos  Por valor - seguridad  copiado en el almacenamiento local de la función  la función accede a la copia  Por referencia - velocidad - retornos múltiples  se copia la dirección del objeto que se esta pasando  la función accede al objeto  Por referencia constante - seguridad + velocidad  Vectores: paso por referencia
  • 23. Lenguaje C++ Funciones  Paso de argumentos  Por valor char a = ‘a’; miFuncion(a);  Por referencia char a = ‘a’; miFuncion(&a);  Vectores: paso por referencia char a[] = {‘a’,’b’} miFuncion(a);
  • 24. Lenguaje C++ Funciones  Sobrecarga de nombres.  int max(int, int);  int max( int, int, int);  int max(int *, int);  int max(float, int);  int max(int, float);
  • 25. Lenguaje C++ Soporte para abstracción de datos  Definición de un conjunto de operaciones asociadas a un tipo.  Restricción del conjunto de operaciones que se pueden realizar sobre un tipo a las definidas para el mismo.  CLASE  nombre  datos miembros  funciones miembro  control de acceso
  • 26. Lenguaje C++ Soporte para abstracción de datos  Inicialización y destrucción.  Inicialización y asignación.  Patrones.  Conversiones de tipo complex a = complex(1);  Múltiples implementaciones
  • 27. Lenguaje C++ Soporte para orientacion a objetos  Funciones virtuales. Polimorfismo.  Clases abstractas.  Clases patrón.  Herencia simple y múltiple.  Encapsulado.
  • 28. Lenguaje C++  Los objetos se crean al llegar a su definición.  Los objetos se destruyen cuando salen del bloque.  Los objetos globales se crean una sola vez y se destruyen al terminar el programa.  Los objetos static son similares a los globales.
  • 29. Lenguaje C++  Almacenamiento de objetos  estático (asignada al iniciarse el programa)  automático (asociada al bloque)  en la memoria disponible (obtenida con new)
  • 30. Lenguaje C++ Clases. Tipo abstracto de datos definido por el usuario Interface e implementación class X { private: int i; public: f(); protected: g(); }; struct X { private: int i; public: f(); protected: g(); };
  • 31. Lenguaje C++ clases  Constructores  Funciones con el mismo nombre de la clase pero que no retornan nada.  Constructor de copia  Constructor por defecto  Constructores como conversores de tipo  Destructores  virtuales
  • 32. Lenguaje C++ clases  CONSTRUCTORES  class Point {  int _x, _y;  public: Point() { _x = _y = 0; }  void setX(const int val);  void setY(const int val);  int getX() { return _x; }  int getY() { return _y; }  };
  • 33. Lenguaje C++ clases  DESTRUCTORES  class Point {  int _x, _y;  public:  Point() { _x = _y = 0; }  Point(const int x, const int y) { _x = x; _y = y; }  ~Point() { /* ¡Nada qué hacer! */ }  void setX(const int val);  void setY(const int val);  int getX() { return _x; }  int getY() { return _y; }  };
  • 34. Lenguaje C++ clases  Friend  Nosotros podemos definir que funciones o clases sean amigos de una clase para permitirles acceso directo a sus miembros de datos privados. Por ejemplo, que la función para el operador + tuviese acceso a los miembros de datos privados _real e _imag de la clase Complex. Con ese fin declaramos que el operador + sea amigo de la clase Complex:  class Complex {  ... public: ...  friend Complex operator +( const Complex &, const Complex & );  };  Complex operator +(const Complex &op1, const Complex &op2) {  double real = op1._real + op2._real, imag = op1._imag + op2._imag; return(Complex(real, imag));  }
  • 35. Lenguaje C++ clases  Construcción de objetos  automáticos  variables locales: se ejecuta su constructor cada vez que el programa pasa por la declaración  secuencia de construcción - destrucción  inicialización y asignación  en memoria disponible  new, delete  int* ip = new int(7);  delete ip;  int* iap = new int[10];  delete [] iap;
  • 36. Lenguaje C++ clases y herencia  class Point3D : public Point {  int _z;  public:  Point3D() { setX(0); setY(0); _z = 0; }  Point3D(const int x, const int y, const int z) { setX(x); setY(y); _z = z; }  ~Point3D() { /* Nada que hacer */ }  int getZ() { return _z; }  void setZ(const int val) { _z = val; }  };
  • 37. Lenguaje C++ clases y herencia múltiple  class DrawableString : public Point, public DrawableObject {  ... public:  DrawableString(...){ ... }  ~DrawableString() { ... } ...  };