Sei sulla pagina 1di 18

Programación c++

orientado a objetos

Ing. Carolyn M. Rojas Vargas


Correo: carolynmilagrosrojas@gmail.com
LLAMAR
FUNCIONES
QUE ES UNA FUNCION
Una función es una sección de programa que puede actuar sobre los datos y devolver un valor.
Todos los programas en C++ tienen al menos una función, la función main ()a la que llama
automáticamente cuando se ejecuta el programa. Esta función puede contener sentencia que llaman
a otras funciones, alguna de las cuales podían a su vez llamar a otras , y así sucesivamente.

Declarar Funciones
Antes de poder escribir un código de una función, deberá ser declarada.
La declaración de una función le dice al compilador el nombre de la función, el tipo de dato que
produce la función y los tipos de parámetros que pueda recibir la función. Una declaración también
es denominada “prototipo de función”(prototipo porque no contiene código).

Si una función devuelve valor, entonces deberá usar una sentencia return que devuelve un literal o
variable del tipo, y si la función no genera un valor deberá usar void como tipo.
DECLARACIÓN DE FUNCIÓN
La lista de argumentos es una lista con cada con cada uno de los parámetros y su tipo, separados por comas.
Veamos una declaración de una función que determina el área de un rectángulo mediante los parámetros alto
y ancho:
int caculoArea(int length, int width); //prototipo de función

Las tres partes de la declaración:


• El tipo devuelto, int
• El nombre, calculoArea
• El tipo y nombre de los parámetros, un int llamado length y un int llamado width
El prototipo de la función debe coincidir con los tres elementos de la función, pues de lo contrario el
programa no compilara. Lo único que no tiene que coincidir es el nombre de los parámetros. En la
declaración de la función no hace falta dar nombre a los parámetros. La declaración anterior se podría
reescribir de la siguiente manera:
int calculoArea(int , int);

Observación: Los nombres de la funciones no deben contener espacios, por eso es preferible usar
letras mayúsculas.
EJEMPLO DE FUNCIÓN
#include <iostream>
using namespace std;
int calculoArea(int length, int width); // prototipo de la función

int main()
{
int length;
int width;
int area;
cout << "\n¿cuanto es el ancho del rectangulo? ";
cin >> width;
cout << "\n¿cuanto es el alto del rectangulo? ";
cin >> length;
area = calculoArea(length, width);
cout << "\nEl área es ";
cout << area;
cout << " metros cuadrados\n\n";
return 0;
}
// definición de la función
int calculoArea(int l, int w)
{
return l * w;
}
PARAMETROS DE UNA FUNCIÓN
Una función recibe la información en forma de parámetros de función. Puede haber varios parámetros,
siempre que estos vayan separados por comas, aunque también se puede llamar a una función sin
parámetros. Los parámetros enviados a una función no tienen porque tener el mismo tipo de dato, Se puede
llamar a una función pasándoles un entero , dos enteros largos y un carácter. Ejemplo:

int x=4 , y =13;


void swap (int x, int y){
int temp =x;
int x=y;
int y= temp;
}
Parámetros por defecto de la Función
Cuando en un prototipo se declara una función que recibí uno o mas parámetros, solo se podrá llamar a la
función con argumentos que sean del tipo apropiado. Consideremos una función que toma un entero:
bool isLeapYear (int year);
bool isLeapYear (int year = 2011);
PARÁMETROS POR DEFECTO
Cuando una función tiene mas de un parámetro, los valores por defecto se asignan en base al orden de los
parámetros. Se puede asignar un valor por defecto a cualquier parámetro, con una importante restricción: Si
un parámetro no posee un valor por defecto, ningún parámetro anterior lo puede tenerlo. Ejemplo:

long setPoint(int x, int y, int z, int t);


Lo que no esta permitido
long setPoint(int x, int y, int z=1, int t); // no permitido porque ‘t” carece de valor por defecto.
long setPoint(int x, int y, int z=1, int t=2000);//si esta permitido.
long setPoint(130,85); // x valdra 130, y=85, z=1,t=2000
EJEMPLO DE FUNCIÓN
#include <iostream>
bool isLeapYear(int year)
bool isLeapYear(int year);
{ if (year % 4 == 0)
{ if (year % 100 == 0)
int main()
{ if (year % 400 == 0)
{
{ return true;
int input;
}
std::cout << "Enter a year: ";
else
std::cin >> input;
{ return false;
if (isLeapYear(input))
}
{
}
std::cout << input << " is a leap
else
year\n";
{
}
return true;
else
}
{
}
std::cout << input << " is not a
else
leap year\n";
{
}
return false;
return 0;
}
}
}
DEVOLVER VALORES
Las funciones devuelven un valor o void. La palabra clave return ira seguida del valor a devolver. El valor
puede ser literal, una variable o expresión, porque todas las expresiones producen un valor. Ejemplo:

return 5;
return (x >5)
return (convert(fahrenheit));
EJEMPLO DE FUNCIÓN
#include <iostream>
int findArea(int length, int width = 20, int height = 12);

int main()
{
int length = 100;
int width = 50;
int height = 2;
int area;

area = findArea(length, width, height);


std::cout << "First area: " << area << "\n\n";

area = findArea(length, width);


std::cout << "Second area: " << area << "\n\n";

area = findArea(length);
std::cout << "Third area: " << area << "\n\n";
return 0;
}

int findArea(int length, int width, int height)


{
return (length * width * height);
}
SOBRECARGA DE FUNCIONES
En C++ puede existir mas de una función con el mismo nombre, siempre que los argumentos sean
diferentes en cada caso. Esta practica se denomina sobrecarga de funciones. Los parámetros de las funciones
deben tener tipos de datos diferentes, un numero diferente de parámetros o ambas cosas. Veamos tres
prototipos de funciones sobrecargadas:
int store (int, int);
int store (long, long);
int store (long);

La función store difieren en el numero de parámetros y tipos. En este caso, los parámetros con los que se
llama a la función determinan a que función se llama.
CLASES
QUE ES UN TIPO Y QUE ES CLASE
Los humanos tenemos la capacidad de clasificar. En C++, un tipo es un objeto con información y un
conjunto de capacidades.

Clases
Una clase es un plantilla que se utiliza para crear objetos. Una vez definida una clase, los objetos creados a
partir de esa clase se pueden utilizar como cualquier otro tipo de datos. Una clase es una colección de
variables y funciones relacionadas en un mismo paquete. Las variable pueden ser de cualquier tipo, incluyendo
otras clases.

Declarar una clase


Para declarer una clase se utiliza la palabra class seguida de la información sobre las variables y las funciones
miembro de la clase. Ejemplo:
class Tricycle
{public :
unsigned int speed;
unsigned int llanta;
Pedal (); brake();
};
EJEMPLO DE CLASE
#include <iostream>
class Tricycle // pedal the trike
{ void Tricycle::pedal()
public: {
int getSpeed(); setSpeed(speed + 1);
void setSpeed(int speed); std::cout << "\nPedaling; tricycle speed " << speed << " mph\n";
void pedal(); }
void brake();
private: // apply the brake on the trike
int speed; void Tricycle::brake()
}; {
setSpeed(speed - 1);
// get the trike's speed std::cout << "\nBraking; tricycle speed " << speed << " mph\n";
int Tricycle::getSpeed() }
{
return speed; // create a trike and ride it
} int main()
{
// set the trike's speed Tricycle wichita;
void Tricycle::setSpeed(int newSpeed) wichita.setSpeed(0);
{ wichita.pedal();
if (newSpeed >= 0) wichita.pedal();
{ wichita.brake();
speed = newSpeed; wichita.brake();
} wichita.brake();
} return 0;
}
DEFINIR OBJETOS
Un objeto se crea a partir de una clase especificando su clase y un nombre de variable. Eejmplo:
Tricycle nikita; // esta sentencia crea un objeto Tricycle llamado nikita.

La clase Tricycle se utiliza como plantilla para el objeto, que poseera todas las variables miembro y funciones
miembro definidas en la clase. Un objeto es una instancia individual de una clase. Cuando crea un objeto, se
dice que crea una “instancia” de la clase.

Para accede a los miembros de la clase, se debe declarer el objeto de la siguiente manera:
Tricycle nikita;
nikita.speed=6; // función miembro
nikita.pedal();
IMPLEMENTAR FUNCIONES MIEMBROS
Todas las funciones miembro de las clases que declare deberan estar tambien definidas. Una definición de una function miembro
comienxza con el nombre de la clase seguido del operador de resolucion de ambito (::) y el nombre de la function. Veamos un
ejemplo:
void Tricycle :: pedal ()
{
std::cout << “Pedaling trike\n”;
Las funciones de las clases tienen las mismas capacidades que las funciones; pueden tener parametros y devolver un valor.

Crear y Eliminar objetos


Hay dos maneras de definir tipos nativos como los enteros. Una es definir la variable y asignarle luego un valor en un punto mas
avanzado del programa. Ejemplo:
int weigth;
weigth=7; // tambien int weigth=7

Las clases poseen una function miembro especial denominada constructor, a la que se llama cuando se instancia un objeto de la
clase. La finalidad del constructor es crear un objeto valido de la clase, lo que con frecuencia implica inicializar los datos de sus
miembros. El constructor es una función con el mismo nombre que la clase pero no devuelve ningun valor. Ejemplo:
Tricycle :: Tricycle (int initialSpeed)
{setSpeed(initialSpeed) //este constructor asigna el valor inicial de la variable miembro speed utilizando un parametro.
}
El destructor de la clase no require acciones especiales para liberar memoria, por lo que solo contiene un comentario.
CONSTRUCTORES
Existen varias maneras de llamar a los constructores cuando se define un objeto. Una es especificar uno o mas
parametros entre paréntesis:
Tricycle nikita(5);

Al constructor se le envían los parámetros. En este ejemplo se define la velocidad inicial del triciclo. Tambien
puede definer un objeto sin especificar parametros:
Tricycle nikita; // esto llama al constructor por defecto de la clase sin parámetros.

Los Constructores del Compilador:


Si no declara constructores, el compilador declara uno por defecto. El constructor por defecto que
proporciona el compilador no realiza ninguna accion; es como si lo hubiera declarado sin parametros. Si no
llega a definer correctamente un constructor, el compilador tambien le proporcionara uno de estos que no
hacen nada.
GRACIAS

Potrebbero piacerti anche