3 Intro C
Tema 2
TACC II
Curso 2008/09
1
Indice
zIntroducción
{Hello world!
{Comparación con C.
{Comparación con Java.
Java
z Tipos de Datos C++.
z Funciones y métodos.
é
z Continuación Clases.
z Excepciones.
z La Biblioteca Standard.
z Consejos de Programación.
2
Primer programa: Hello world!
Hello.cpp
#include
using namespace std;
// mi primer programa C++
void main(){
cout << “Hello
Hello world!”
world! << 2008 << “\n”;
\n ;
}
Consola
Hello world!2007
3
Comparación C – C++
z C++ fue
f
di ñ d a partir
diseñado
ti de
d C,
C y con pocas
excepciones, los programas C son programas
C .
C++.
z El diseño de C se basó en expresividad y
eficiencia.
z El diseño de C++ hace énfasis en la
estructuración (sin perder eficiencia):
{Orientación
{O
i
ió a objetos
bj{Programación genérica.
{Abstracción de datos.
datos
{Estructuración y modularización mediante espacios de
nombres.
{M
{Manejo
j de
d excepciones
i
(
(errores).
)
4
Comparación Java – C++
z C++ tiene mecanismos (operadores,
(operadores conversión implícita)
que permiten que los tipos definidos por el usuario
“parezcan” tipos predefinidos.
z Gestión de memoria.
z Modelo de objetos: Punteros,referencias.
z Herencia múltiple en C++, interfaces en Java.
z Java es orientado a objetos puro, C++ no (vars. globales,
funciones globales, main(), etc).
z Esquema de compilación (.class).
5
Origen histórico
z B. Stroustrup (AT&T Bell Laboratories),
principios de los 80.
z Heredero de “C”,
C , que es heredero de “B”
B
(Richards 1980) y de Simula 67.
{C, especificación formal 1997 (Ritchie y Kernighan)
zEstandarización ANSI
ANSI. Tercera edición de “The
The
C++ Programming Language” (1997).
6
Indice
z Introducción.
Introducción
zTipos de Datos C++.
{Declaraciones y Ámbito.
Á
{Referencias.
{Estructuras y Clases (introducción).
z
z
z
z
z
Funciones y métodos
métodos.
Continuación clases.
Excepciones
Excepciones.
La Biblioteca Standard.
Consejos de Programación.
7
Tipos de Datos C++
z TiposTi
bá
básicos:
i
{
{
{
{
Booleano (bool).
Carácter (char).
Entero (ej. int).
Punto flotante (ej. double).
zD
Definidos
fi id por ell usuario
i (enum).
)
z Tipo que denota la ausencia de información (void).
z A partir
ti d
de llos anteriores,
t i
se pueden
d construir:
t i
{
{
{
{
tipos punteros (ej. int *)
tipos
p array
y ((ej.
j char [])
tipos referencia (ej. double&)
estructuras y clases.
8Ambito
z Una declaración introduce un nombre dentro de un
ámbito,, y sólo se puede
p
usar en este ámbito.
z Operador de resolución de ámbito ::
Ambito.cpp
pp
#include
int x;
// x global
void main()
{
int x; // x local -> oculta la x global
x = 1; // uso de la x local
{
int x;
// oculta la x local anterior
::x = x = 2;
// usa la x del bloque actual y la global
}
// la x de este bloque
qse destruye
y
x = 3;
// usa la x local del main
::x=4;
// usa la x global
Consola
34
std::cout << x << " " << ::x << "\n";
}
9
Límites de los Tipos
p
Son dependientes del compilador
#include
#include
void
id main()
i ()
{
std::cout
Limits.cpp
<< "el mayor float es ”
<
<< ",el menor float es “
<
()
<<",los char tienen signo?“
<
<< "\n";
\n ;
}
Consola
ell mayor flfloatt es 3
3.40282e+038,el
40282 038 l menor flfloatt es 1
1.17549e-038,los
17549 038 l char
h titienen
10
signo?1
Referencias
zU
Una referencia
f
i es un nombre
b alternativo
lt
ti para un objeto.
bj t
z Su uso principal está en el paso de parámetros y valores
de retorno a funciones
funciones.
zNotación X& (una referencia al tipo X).
refs1.cpp
f 1
void main()
{
int i=1;
int& r=i; // i y r se refieren al mismo int
int x=r; // x=1
r=2;
// i=2;
}
11
Referencias
zDeben incializarse en su declaración:
refs2.cpp
f 2
void main()
{
int i=1;
int& r=i;
int&r2;
extern int &r3;
int& rr=2;
// i y r se refieren al mismo int
// error, r2 no se ha inicializado
// ok,
ok r3 se ha inicializado en...
Regístrate para leer el documento completo.