Explora Libros electrónicos
Categorías
Explora Audiolibros
Categorías
Explora Revistas
Categorías
Explora Documentos
Categorías
Lenguaje C++
Introducción
• Bjarne Stroustrup, mediados de los 80, AT&T
• 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
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
• class Complex {
• ... public: ...
• friend Complex operator +( const Complex &, const Complex & );
• };