El camnio de c++ es largo, pero se sigue avanzando. Veamos las funciones inline, un recurso interesante para mejorar el rendimiento.
|| /
* Inline.cpp
* Programa para probar funciones Inline
* Las funciones Inline no se compilan como funciones aparte,
* lo que se hace al compilar es añadir el contenido de la funcion haya
* donde se se invoca. Con lo que es mucho mas rapido de ejecutar
* y ademas nos da la limpieza de separar el codigo.
*
* Pello Xabier Altadill Izura
*
* Compilado: g++ Inline.cpp -o Inline
*/
using namespace std;
#include <iostream>
las funciones en CPP las debemos declarar antes de invocar
aqui tenemos el prototipo. Si no se pone tendremos ERROR de compilador
Declaramos la funcion como inline
inline double Calcula (double a, double b);
Log : saca un mensaje por pantalla
void Log(char *mensaje);
Variables globales
long variable = 666;
char *PROGRAMA = "Globales> ";
int main () {
Sacamos por salida standar un mensaje
Log("Vamos a probar los operadores");
unsigned int test = 0;
double a = 23, b = 21, c = 34;
Tomamos el valor a
Log("Dame valores. \na=");
cin >> a;
Tomamos el valor b
cout << "b=";
cin >> b;
cout << "Y ahora son estos: b=" << b << " a=" << a << " global:" << variable << "Y el resultado de la funcion c=" << c << endl;
Probamos la funcion
Log("Venga va vamos");
return 0;
}
/
* Calcula
* parametros: double a, double b
* devuelve double
* En la implementacion no hace falta volver a poner INLINE
*/
double Calcula (double a, double b) {
a *= 35462;
b *=32546 + a;
return (a / b) * variable;
}
/
* Log
* parametros: char *mensaje
* devuelve void
*/
void Log (char *mensaje) {
cout << PROGRAMA << mensaje << endl;
}
||
Paso de parametros Vamos a ver formas de pasar parametros.
|| /
* Parametros.cpp
* Programa para probar los parametros de las funciones y
* la forma de aplicar valores por defecto
*
* Pello Xabier Altadill Izura
*
* Compilado: g++ Parametros.cpp -o Parametros
*/
using namespace std;
#include <iostream>
las funciones en CPP las debemos declarar antes de invocar
aqui tenemos el prototipo. Si no se pone tendremos ERROR de compilador
double Calcula (double a, double b);
Log : saca un mensaje por pantalla
void Log(char *mensaje = "Sin valor prefijado");
suma: suma dos valores
int Suma(int a = 0, int b = 0, int c = 0);
Variables globales
long variable = 666;
char *PROGRAMA = "Globales> ";
int main () {
Sacamos por salida standar un mensaje
Log("Vamos a probar los operadores");
Llamada sin parametros
Log();
unsigned int test = 0;
int a = 23, b = 21, c = 34, d = 0;
Llamanda sin parametros
d = Suma();
cout << "Y el resultado de la funcion Suma sin parametros :" << d << endl;
Llamada con parametros
d = Suma(a,b,c);
cout << "Y el resultado de la funcion Suma :" << d << endl;
Probamos la funcion
Log("Venga va vamos");
return 0;
}
/
* Calcula
* parametros: double a, double b
* devuelve: double
*/
double Calcula (double a, double b) {
return (a / b) * variable;
}
/
* Log
* parametros: char *mensaje
* devuelve: void
* NOTA: no hace falta volver a poner el valor prefijado
*/
void Log (char *mensaje) {
cout << PROGRAMA << mensaje << endl;
}
/
* Suma
* parametros: int a, int b, int c
* devuelve: int
*/
int Suma (int a = 0, int b = 0, int c = 0) {
Log("Vamos a ver. Estamos en suma. ");
Devolvemos un valor
return (a + b + c);
}
||
Sobrecarga de funciones La sobrecarga es otro concepto básico en la POO. Aqui se muestra un boton.
|| /
* Sobrecarga.cpp
* Programa para probar la sobrecarga de funciones
* La sobrecarga es una misma funcion con distintos parametros
* Con la sobrecarga logramos el POLIMORFISMO de clases
y funciones
*
* Pello Xabier Altadill Izura
*
* Compilado: g++ Sobrecarga.cpp -o Sobrecarga
*/
using namespace std;
#include <iostream>
las funciones en CPP las debemos declarar antes de invocar
aqui tenemos el prototipo. Si no se pone tendremos ERROR de compilador
double Calcula (double a, double b);
int Calcula (int a, int b);
float Calcula (float a, float b);
Log : saca un mensaje por pantalla
Esto provocaria error de compilador por ambiguedad de sobrecarga
void Log();
Log : saca un mensaje por pantalla
NOTA: el valor por defecto solo se pone en la DECLARACION
void Log(char *mensaje = "Sin valor prefijado");
suma: suma dos valores
int Suma(int a = 0, int b = 0, int c = 0);
Variables globales
long variable = 666;
char *PROGRAMA = "Globales> ";
int main () {
Sacamos por salida standar un mensaje
Log("Vamos a probar los operadores");
Llamada sin parametros
Log();
unsigned int test = 0;
int a = 23, b = 21, c = 34, d = 0;
Llamanda sin parametros
d = Suma();
cout << "Y el resultado de la funcion Suma sin parametros :" << d << endl;
Llamada con parametros
d = Suma(a,b,c);
cout << "Y el resultado de la funcion Suma :" << d << endl;
Probamos la funcion
Log("Venga va vamos");
return 0;
}
/
* Calcula
* parametros: double a, double b
* devuelve: double
*/
double Calcula (double a, double b) {
return (a / b) * variable;
}
/
* Calcula
* parametros: float a, float b
* devuelve: float
*/
float Calcula (float a, float b) {
return (a / b) * variable;
}
/
* Calcula
* parametros: long a, long b
* devuelve: long
*/
long Calcula (long a, long b) {
return (a / b) * variable;
}
/
* Log
* parametros: char *mensaje
* devuelve: void
*/
void Log (char *mensaje) {
cout << PROGRAMA << mensaje << endl;
}
/
* Suma
* parametros: int a, int b, int c
* devuelve: int
*/
int Suma (int a = 0, int b = 0, int c = 0) {
Log("Vamos a ver. Estamos en suma. ");
Devolvemos un valor
return (a + b + c);
}
||
El ambito Hasta donde se identifica una variable? Para saltarnos todas las vallas podemos usar variables globales. No conviene abusar de este tipo de variables.
|| /
* Globales.cpp
* Programa para probar variables y su scope
*
* Pello Xabier Altadill Izura
*
* Compilado: g++ Globales.cpp -o Globales
*/
using namespace std;
#include <iostream>
las funciones en CPP las debemos declarar antes de invocar
aqui tenemos el prototipo. Si no se pone tendremos ERROR de compilador
double Calcula (double a, double b);
Log : saca un mensaje por pantalla
void Log(char *mensaje);
Variables globales
long variable = 666;
char *PROGRAMA = "Globales> ";
int main () {
Sacamos por salida standar un mensaje
Log("Vamos a probar los operadores");
unsigned int test = 0;
double a = 23, b = 21, c = 34;
Tomamos el valor a
Log("Dame valores. \na=");
cin >> a;
Tomamos el valor b
cout << "b=";
cin >> b;
cout << "Y ahora son estos: b=" << b << " a=" << a << " global:" << variable <<< "Y el resultado de la funcion c=" << c << endl;
Probamos la funcion
Log("Venga va vamos");
return 0;
}
/
* Calcula
* parametros: double a, double b
* devuelve double
*/
double Calcula (double a, double b) {
return (a / b) * variable;
}
/
* Log
* parametros: char *mensaje
* devuelve void
*/
void Log (char *mensaje) {
cout << PROGRAMA << mensaje << endl;
} ||