Está en la página 1de 20

OBJETIVO

✓ Repaso de funciones con parámetros por valor y por


referencia
✓ Sobrecarga de funciones, declaración y definición de
las funciones sobrecargadas
✓ Directivas preprocesador include, define, etc.
✓ Archivos de inclusión y macros
✓ Ejemplos de aplicación

ING. FÉLIX HUARI 1


SOBRECARGA DE FUNCIONES

ING. FÉLIX HUARI 2


SOBRECARGA DE FUNCIONES

ING. FÉLIX HUARI 3


SOBRECARGA DE FUNCIONES

ING. FÉLIX HUARI 4


SOBRECARGA DE FUNCIONES
El lenguaje C++ permite utilizar varias funciones con el
mismo nombre

Cada función realizará tareas u operaciones similares o


distintas

Cada función definida deberá diferenciarse una de otra por


los parámetros
Cuando se cumple este requisito, entonces hablamos que
la función esta sobrecargada

Cuando se realiza la llamada a un función sobrecargada, el


compilador selecciona la función correcta a procesar

ING. FÉLIX HUARI 5


SOBRECARGA DE FUNCIONES

Para ello examina el numero, tipos y orden de los


argumentos de la función
Los datos examinados la compara cada uno de los
argumentos que aparecen en la llamada con los que
se indican en la definición de la función
En resumen, se tiene que asegurar que el número y
tipo de argumento de todas las funciones sean
diferentes

ING. FÉLIX HUARI 6


SOBRECARGA DE FUNCIONES
❑ Ejemplos

✓void Misterio(int n);


✓int Misterio(char x, float p);
✓bool Misterio(int x[],int n);
✓float Misterio(float n);
✓int Misterio( int n);

C++ no permite sobrecarga de funciones que difieran


solo en el tipo de valor devuelto con return

✓double Calcular (int a);


✓float Calcular(int b);

ING. FÉLIX HUARI 7


SOBRECARGA DE FUNCIONES

❑ Ejemplo

Se tiene 2 datos, donde estos pueden ser enteros,


reales o de tipo cadena
Se pide calcular la suma
Para ello aplicar sobrecarga de funciones

ING. FÉLIX HUARI 8


SOBRECARGA DE FUNCIONES

#include <iostream>
#include <string.h>
using namespace std;
// Definicion de las funciones

void LeerDatos(int &x, int &y)


{ cout<<"Ingrese valores enteros de a y b:";
cin>>x>>y;
}

ING. FÉLIX HUARI 9


SOBRECARGA DE FUNCIONES

void LeerDatos(double &x, float &y)


{ cout<<"Ingrese valores reales de a y b:";
cin>>x>>y;
}

void LeerDatos(char x[], char y[])


{ cout<<"Ingrese las 2 cadenas ";
cin>>x>>y;
}

ING. FÉLIX HUARI 10


SOBRECARGA DE FUNCIONES

int suma(int x, int y)


{ return x+y;
}

double suma(double x, float y)


{ return x+y;
}
char *suma(char a[], char b[])
{ strcat(a,b); return a;
}

ING. FÉLIX HUARI 11


SOBRECARGA DE FUNCIONES

// programa principal
int main()
{ int a,b; double a1; float b1; char cad1[80],cad2[80];
LeerDatos(a,b); cout<<"La suma
es:"<<suma(a,b)<<endl;
LeerDatos(a1,b1);
cout<<"La suma es:"<<suma(a1,b1)<<endl;
LeerDatos(cad1,cad2);
cout<<"La concatenacion es :"<<suma(cad1,cad2)<<endl;
}

ING. FÉLIX HUARI 12


SOBRECARGA DE FUNCIONES

// Salida de resultados

ING. FÉLIX HUARI 13


SOBRECARGA DE FUNCIONES

❑ Ejemplo

Evaluar las raíces de una ecuación de segundo


grado
Primer caso, asumir que las constantes son enteros
Segundo caso, asumir que las constantes son reales

ING. FÉLIX HUARI 14


SOBRECARGA DE FUNCIONES

ING. FÉLIX HUARI 15


SOBRECARGA DE FUNCIONES

ING. FÉLIX HUARI 16


SOBRECARGA DE FUNCIONES

ING. FÉLIX HUARI 17


SOBRECARGA DE FUNCIONES

ING. FÉLIX HUARI 18


PROBLEMAS SOBRECARGA DE FUNCIONES
❑ EJEMPLO 01

Dado las siguientes funciones que se indican a continuación:

void Computa(int q, float pu, float igv, float total): En q recibe la cantidad a comprar
y en pu el precio unitario de un determinado producto, para luego retornar el monto
del igv y el total a pagar.

bool Computa(int día): En dia recibe un numero entero que indica la cantidad de
dias en la cual va pagar una compra hecha, pudiendo ser 0, 7, 15, 30, 45, 60, 75 o
90. Si dia es 0, indica que el pago es al contado, precio del producto se mantiene,
en otro caso el pago es a crédito, en este caso el precio unitario del producto se ve
incrementado en 0.5%, 1.5%, 2.0%, 3.8%, 4.5%, 6%, 9% respectivamente. Se
pide implementar las funciones dadas, la función principal y otras funciones que
requiera.

ING. FÉLIX HUARI 19


PROBLEMAS SOBRECARGA DE FUNCIONES

❑ EJEMPLO 02

Dado las siguientes funciones que se indican a continuación:

void CalculaPrint(int n): Esta función permite mostrar el equivalente del numero
ingresado pero en formato hexadecimal.

void CalculaPrint(int n, int p): Permite mostrar todos los números de 3 cifras cuya
suma de sus dígitos pares sea igual a la suma de sus dígitos impares, para ello se
brinda como dato el numero entero de 3 dígitos. Además contar cuantos números
existe que cumplan esta condición, el resultado retornar en p. Implementar las
funciones descritas y la función principal y otras funciones que requiera.

ING. FÉLIX HUARI 20

También podría gustarte