Академический Документы
Профессиональный Документы
Культура Документы
11 de marzo de 2009
Entendiendo C++
11 de marzo de 2009
1 / 19
Contenidos
1
Introduccion
Sobrecarga de operadores
Functores
Plantillas
Caractersticas futuras
Conceptos
Funciones lambda
El tipo auto
Para terminar
Entendiendo C++
11 de marzo de 2009
2 / 19
Introduccion
Que es C++?
Wikipedia
C++ es un lenguaje de programaci
on dise
nado a mediados de los a
nos
1980 por Bjarne Stroustrup. La intenci
on de su creaci
on fue el extender al
exitoso lenguaje de programaci
on C con mecanismos que permitan la
manipulaci
on de objetos. En ese sentido, desde el punto de vista de los
lenguajes orientados a objetos, el C++ es un lenguaje hbrido.
Entendiendo C++
11 de marzo de 2009
3 / 19
Introduccion
Caractersticas de C++
Entendiendo C++
11 de marzo de 2009
4 / 19
Introduccion
Caractersticas de C++
Pero a
nade otras caractersticas interesantes:
Espaciones de nombres (namespaces).
Integracion con C (C++ no es un lenguaje orientado a objetos puro).
Funciones y metodos inline.
Plantillas (templates).
Sobrecarga de operadores.
Parametros por referencia, devoluci
on por referencia, devolucion
constante, metodos constantes, etc.
Entendiendo C++
11 de marzo de 2009
5 / 19
Introduccion
Pros y contras
Pros:
Uso de una sintaxis estandar (la de C).
Generacion de ejecutables binarios en c
odigo maquina.
Mezcla de codigo no orientado a objetos y s orientado a objetos.
Contras:
No dispone de recolector de basura.
Sintaxis algo pesada en ocasiones:
v e c t o r <i n t > : : i t e r a t o r i = v . b e g i n ( ) ;
No dipone de una bibliotecas ricas en funcionalidades como Java o
.Net.
Es un lenguaje que puede ser muy complejo.
Errores ininteligibles.
Samuel Rodrguez Sevilla ()
Entendiendo C++
11 de marzo de 2009
6 / 19
Sobrecarga de operadores
Introducci
on
&= |=
<<
<= >= && ||
()
[]
new delete
%
+=
>>
++
new[]
Entendiendo C++
-=
<<=
-delete[]
&
*=
>>=
,
|
/=
==
->*
%=
!=
->
11 de marzo de 2009
7 / 19
Sobrecarga de operadores
Utilizaci
on
Entendiendo C++
11 de marzo de 2009
8 / 19
Functores
Introducci
on
Entendiendo C++
11 de marzo de 2009
9 / 19
Functores
Utilizaci
on
template<typename T>
c l a s s c o mparar {
int d i f = 0;
public :
c o m p arar ( i n t d i f ) {
dif = dif ;
}
bool o p e r a t o r ( ) ( const T& op1 , const T& op2 ) {
r e t u r n op1+ d i f op2 > 0 ;
}
};
/ . . . /
v e c t o r <i n t > v ( 2 0 ) ;
s o r t ( v . b e g i n ( ) , v . end ( ) , c o m p a r a r ( 3 ) ) ;
Samuel Rodrguez Sevilla ()
Entendiendo C++
11 de marzo de 2009
10 / 19
Plantillas
Introducci
on
Las plantillas son el mecanismo que tiene C++ para realizar clases
que se ajusten a cualquier tipo de dato (como los genericos de Java o
.Net).
Eliminan la necesidad de utilizar void* como en C y a
naden
comprobacion de tipos.
Se hace una compilaci
on especfica por cada tipo de dato de la
plantilla (ocupa mas espacio).
Las plantillas pueden ser de clases, estructuras, metodos y funciones.
Entendiendo C++
11 de marzo de 2009
11 / 19
Plantillas
Utilizaci
on
Entendiendo C++
11 de marzo de 2009
12 / 19
Plantillas
Utilizaci
on
template<typename T>
T s q u a r e (T v ) {
return vv ;
}
Entendiendo C++
11 de marzo de 2009
13 / 19
Caractersticas futuras
Conceptos
Entendiendo C++
11 de marzo de 2009
14 / 19
Caractersticas futuras
Funciones lambda
Entendiendo C++
11 de marzo de 2009
15 / 19
Caractersticas futuras
El tipo auto
El tipo auto hace que sea el compilador el que decida el tipo de una
variable. Es muy u
til en el caso de funciones lambda o cuando se trabaja
con algunas plantillas.
v e c t o r <i n t > v ( 2 0 ) ;
d i f = 3;
int
a u t o c = [ d i f ] ( c o n s t i n t op1 , c o n s t i n t op2 )
{ r e t u r n op1+ d i f op2 ; } ;
s o r t ( v . b e g i n ( ) , v . end ( ) , c ) ;
f o r ( a u t o i t = v . b e g i n ( ) ; i t != v . end ( ) ; i t ++)
{ / h a c e r l a l g o / }
Entendiendo C++
11 de marzo de 2009
16 / 19
Mas recursos
Entendiendo C++
11 de marzo de 2009
17 / 19
Dudas
...
Entendiendo C++
11 de marzo de 2009
18 / 19
Fin
Entendiendo C++
11 de marzo de 2009
19 / 19