Funciones C ++ Inline

una función en línea es una función que se gasta en la cola cuando se la invoca, que es el compilador reemplaza la llamada a la función con el código de función correspondiente.

Es la técnica de optimización utilizada por los compiladores. Uno puede simplemente se antepone en línea palabra clave para prototipo de función para realizar una función en línea. función en línea instruir compilador para insertar el cuerpo completo de la función donde quiera que la función se acostumbró en el código.

***** Recuerde que la palabra clave en línea simplemente envía la solicitud, no un comando para el compilador, el compilador puede ignorar esta solicitud if la definición de función es demasiado long o demasiado complicado y compilar la función como una función normal. ****

Ventajas

  • evita la sobrecarga de llamar la función real. Esto es porque la realiza el compilador y en línea de expansión que elimina la sobrecarga de tiempo cuando una función se llama.
  • Reduce el espacio que hay set de instrucciones de la memoria en que está escrito.
  • El uso en línea, usted puede poner una definición de función en un archivo de cabecera (es decir, que se pueden incluir en unidad de compilación múltiple, sin el enlazador en las protestas.)

Algunas situaciones donde la expansión en línea puede no trabajo, que son:

  • If, existe función que devuelve algunos valores y un bucle de un switch o una goto.
  • If tipo de función es return void y una declaración return es que existe.
  • If función contiene cualquier variable static.
  • If función en línea es recursivo.

Sintaxis

//Syntax to declare and define a function
inline return_type function_name(argument_list)
{
....;
....;
....;
[return value;]
}

Considere el ejemplo

#include <iostream>
using namespace std;
// Program to create functions using inline...
inline double square(int n)
{
return n*n;
}
inline float average(int n1,int n2)
{
return ( (float)(n1+n2)/2 );
}
int main()
{
cout<<"n SQUARE IS = "<< square(12);
cout<<"n AVERAGE IS = "<< average(10,21)<<"n";
return 0;
}

SQUARE IS  = 144
AVERAGE IS = 15.5

funciones en línea con en la clase

una función miembro pueden también ser declarados como inline función, utilice la palabra clave en línea antes de la declaración de función y definición, if definición de función está fuera de clase escrito.

Considere el ejemplo

// Program to create functions using inline with in the class...
#include <iostream>
using namespace std;
class Number
{
private:
int num;
public:
void getNumber(void);
inline double square(void);
inline double cube(void);
};
// defining these functions
void Number::getNumber (void)
{
cout<<"Enter an integer number :";
cin>>num;
}
inline double Number::square (void)
{
return num*num;
}
inline double Number::cube(void)
{
return num*num*num;
}
int main()
{
Number objN;
objN.getNumber();
cout<<"n SQUARE IS ="<< objN.square ();
cout<<"n CUBE IS ="<< objN.cube ();
cout<< endl;
return 0;
}

Enter an integer number :11
SQUARE IS =121
CUBE IS =1331


Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *