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; } |
/** * 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.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); } |
/** * 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; } |