Anda di halaman 1dari 26

Introduccin a C++

Programacin Orientada a Objetos (OOP)

ENCAPSULACION:
ENCAPSULACION No podemos separar los comportamientos
de las caractersticas de un objeto. Los comportamientos del
objeto sern funciones, que en OOP llamaremos MTODOS.
MTODOS
HERENCIA:
HERENCIA Unos objetos pueden heredar mtodos y atributos
de otros. Esto hace ms fcil definir objetos nuevos a partir de
otros que ya tenamos anteriormente y facilitar la reutilizacin de
los programas, pudiendo aprovechar buena parte de los
anteriores... si estn bien diseados.
POLIMORFISMO:
POLIMORFISMO Un mismo nombre de un mtodo puede hacer
referencia a comportamientos relativamente distintos (como abrir
una puerta o abrir un libro). En C++ el polimorfismo llega incluso
al nivel de los operadores: podremos redefinir el operador +
para que sume matrices, ficheros o cualquier tipo de objeto que
nos interese.

Creacin de los archivos en C++

En C++ Lo habitual y que se debe hacer es dividir


el archivo en 2 o 3 partes.

Las variables (atributos) y los prototipos de las funciones


(mtodos) se suelen definir en un archivo de cabecera (los que
en C tenan extensin .h, y que en C++ sera preferible indicar
con extensin .hpp .hh,
hh aunque la mayora de gente no lo
hace).
Los detalles concretos de cmo trabaja cada funcin (el
desarrollo) se definen en un archivo fuente normal (los que en C
tenan extensin .c, y que en C++ tendrn extensin .cpp .cc
.C).
Finalmente un tercer archivo seria el que contiene el main, si bien
puede ir en el archivo donde esta el desarrollo de las funciones
es (a veces) mas fcil tratarlo de forma separada (este archivo
tambin debe tener extensin .cpp .cc .C).

Extensiones de los Archivos

cpp:
cpp es la extensin estndar en MsDos, es decir que si a un

compilador de C y C++ para MsDos le decimos que compile un


archivo cuya extensin es .cpp, sabr que se trata de un
archivo fuente en C++ y no en C.

cc:
cc es la extensin estndar en Unix (si intentamos compilar un
archivo fuente con extensin cpp desde una versin antigua de
Unix, es muy posible que el compilador no reconozca esa
extensin como una propia de C++, e intente compilarlo como
si se tratase de un archivo fuente de C, de modo que no
funcionar).

Extensiones de los Archivos

C: (en mayscula) es otra extensin que se puede usar en

Unix, pero que es menos aconsejable porque existen muchos


sistemas operativos que no distinguen entre maysculas y
minsculas, lo que dar problemas de portabilidad (no se podr
distinguir los fuentes en C, con extensin .c, de los de C++,
con extensin .C, si los llevamos a uno de estos sistemas; es
el caso de MsDos y de Windows).

Las extensiones .hpp (bajo MsDos) y .hh (bajo Unix) son


aconsejables para indicar que se trata de un archivo de
cabecera de C++, pero no es imprescindible, de modo que
muchos programadores usan de todas formas la extensin . h.

Declaraciones despus de las


instrucciones
En C hay que declarar las variables locales al comienzo de una funcin;
en C++ se pueden declarar despus de sentencias ejecutables, lo que
permite incluso declararlas justo en el momento de usarlas.

Ejemplo c:

int i;
for(i=0;i<=n,i++);

Ejemplo C++:

for(int i=0;i<=n;i++);

Acceso a Pantalla y Teclado

Se lee del teclado con cin>>variable


cin>>variable y se manda a
pantalla con cout<<texto.
cout<<texto

Ejemplo c:

printf(intrese la variable %d,i);


scanf(&n);

Ejemplo C++:

cout<<ingrese la variable<<i;
cin>>n;

Acceso a Pantalla y Teclado


Cuando se trata de cadenas o stings:
en c:
c

char nombre[40];
printf(teclee su nombre);
get(nombre);
printf(te llamas %s verdad?\n);

en C++:
C++

char nombre[40];
cout<<teclee su nombre;
cin>>nombre; //es valido usar gets(nombre);
cout<<te llamas<<nombre<<verdad?<<endl;

Acceso a Pantalla y Teclado


En C++ tambin existe un acceso a pantalla, el cual se
utiliza para referirse a un error, es el cerr,
cerr funciona
exactamente igual al cout.
cout
Ejemplo:
cuando deseamos decir al usuario que cometi un
error, lo normal seria:
cout<<el dato ingresado no es valido;
con el nuevo comando seria:
cerr<<el dato ingresado no es valido;
Este comando ayuda al programador a entender que esa
salida a pantalla se refiere a un error y no a otra
instruccin.

Valores por Defecto

Se pueden dar valores por defecto a los parmetros de


una funcin.

void Escribe(char *texto, int x=30, int y=10);

Escribe(saludo, 20, 5); // Vlido, escribe (20,5)

Escribe(saludo, 20);

Escribe(saludo);

Escribe();
"texto"

// Vlido, escribe (20,10)


// Vlido, escribe (30,10)

// No vlido: no hay valor para

Operadores new y delete

Dispone de los operadores new y delete para


reservar memoria dinmica, similares a malloc y free.
free

Por ejemplo, para crear dinmicamente una cadena


de texto de 80 letras se hara:

texto = new char[80];

para eliminarla:

delete texto;

// en vez de = (char *) malloc (80*sizeof(char))

Funcin Boolean
Esta es una funcin nueva y muy practica en C+
+, retorna siempre un valor true o false,
false sirve
mucho para los if.
Como Crearla:
bool nombre(int x, int y){
return (y<=x);
//una condicin cualquiera
}

Funcin Boolean
Ejemplo:
bool cero(int x){
return (x==0);
}
int division(int numerador, int denominador){
if(cero(denominador))
cero(denominador)
cerr<<no existe division por cero<<endl;
else
return (numerador/denominador);
}

Funcin Boolean
Si deseamos negar una condicin, basta con
poner dentro de la condicin, antes de llamar a la
funcin el signo !.
Ejemplo:
if(!verdadero(x)){...}

//verdadero(x) es una funcin booleana

Se asume que la funcin verdadero(x) retornara true,


true pero al
ante ponerle el signo ! a la funcin, lo transformamos a
false y como el if solo se realiza si su condicin es true,
true no
entrara y pasara a la siguiente condicin.

Operador ::
Se usa para indicar el mbito, se utiliza mucho cuando
se trabaja con clases, pero tambin tiene otros usos,
como puede ser el de acceder a una variable global
cuando existe una variable local con el mismo nombre.
Ejemplo:

int i = 5;
void funcion () {
int i = 4;
cout << "La variable local vale " << i; // 4
cout << "La variable global vale " << ::i; //5
}

Las Libreras en c

#include<stdlib.h>
stdlib.h
#include<stdio.h>
stdio.h
#include<math.h>
math.h
#include<time.h>
time.h
#include<string.h>
string.h
#define MAX numero

Las Libreras en C++


#include <iostream>
Librera bsica de entrada/salida. Imprescindible.

#include <string>
Librera para el manejo de string con las funciones mas usuales como strcpy,
strncpy, strlen, strcat, strncat, incluso las que sirven para buscar dividir un string
en tokens.

#include <time>
Libreria para escribir fechas, con distintas opciones. Podemos sacar la fecha
del momento y separar los valores de dia, hora, minuto, etc..

#include <stdlib>
Otra librera bsica, que contiene funciones como los conversores de ascciinteger atoi, algoritmos de ordenacin de arreglos como qsort..

Las Libreras en C++ (otras)


iomanip : manipuladores de entrada/salido con argumentos
fstream : flujos de archivos
sstream : flujos de cadenas (tipo c++)
strstream : flujos de cadenas (tipo c)
vector : contenedor para crear vectores
list : contenedor para crear listas
deque : contenedor para una cola de extremo doble
map : contenedor para grupo de pares (id,valor)
Librerias de c. Estn versioneadas para la librera estndar de c++ las
siguientes: cstdlib, cstdio, cerrno, cassert, cstdarg, cstring, ctime,
csignal, cstddef, csetjmp, cmath, clocale, climits, cfloat y cctype.

Aclaracin:

Las lneas "#include <iostream>"


<iostream> y
"using namespace std;"
std; son necesarias porque
las declaraciones que permiten el acceso a
"cout"
cout y "cin"
cin estn en una librera externa.
Por esto debes siempre poner la librera iostream
y agregar despus de las libreras la linea
using namespace std;

Strings

Se puede crear una cadena sin valor inicial

Se le puede dar un valor inicial a la vez que se declara

string texto2 = "Hola ";

string texto3("Que tal");

Se puede crear una cadena formada por varias,


concatenndolas (sumndolas), usando el signo +.

string texto1;

texto1 = texto2 + texto3 + " estas? ";


"

Se puede crear una subcadena a partir de un trozo de


otra, la vez que se declara.

string subcadena (texto1, 2, 6);


tercera

//6 letras de texto1 desde la

Strings

Se puede extraer un fragmento posteriormente

Se puede insertar texto en el interior de una cadena.

texto1.substr(0, 5); //5 letras de texto1 desde el


comienzo
Texto1.insert(5, "Juan "); // Inserto un texto en la
posicin 6

Reemplazar ciertas letras por otras.

texto2.replace(1, 2, "ad"); //Cambio 2 letras en la


posicin 2

Strings

Se puede saber el tamao (cantidad de letras) de la


cadena.

Se puede acceder a una posicin siguiendo el estndar de


c.

texto1[2]

O bien usando la funcin at.


at

texto1.size()

texto1.at(2)

Se puede comprobar el valor de una cadena (el texto


almacenado) con ==.
==

if(texto2 == "Hada ")

Asignacin a mltiples variables

Otra de las ventajas de C++ es la posibilidad de


asignarle un valor a mltiples variables al mismo
tiempo sin tener que utilizar mas lineas de cdigo
para el mismo fin.

Asignacin a mltiples variables

Ejemplo c:
c

Ejemplo c++:
c++

int a, b, c;

int a,b,c;

a=5;

a=b=c=5;

b=5;
c=5,
Como nos podemos dar cuenta en c++ con este mtodo nos
hemos ahorrado 2 lineas de cdigo, haciendo mas liviano nuestro
cdigo fuente, que a la larga si es un cdigo muy extenso nos sera
de gran ayuda.
Este mtodo sirve tanto para int como para float, char, double,
etc.

Compilar en entornos UNIX

Para Archivos en c:

gcc nombre_archivo.c -o nombre_ejecutable

Para Archivos en C++:

g++ nombre_archivo.cc -o nombre_ejecutable

Realizado por:
Juan Jose Ramirez Lama
Este archivo describe a simples rasgos como trabajar con
C++, es principalmente para quienes pasan de C a C++.
Para profundizar ms, se recomienda complementar con
otro manuales.

Anda mungkin juga menyukai