1
Gracias

Unas palabras de agradecimiento nunca están de más.

La función inline en C++

La palabra reservada inline es utilizada en C++ y se aplica a una función. Indica al compilador que cada llamada a la función deberá ser reemplazada por el cuerpo de esta función. En la práctica, la función inline se utiliza sólo cuando las funciones son pequeñas para evitar que se genere un ejecutable de tamaño considerable. La palabra reservada inline tiene la ventaja de acelerar un programa si este la invoca regularmente. Permite reducir considerablemente el código, en particular para los accesadores de una clase, que son típicamente una función de una línea.




Ejemplo 1

main.cpp:
#include <iostream>
inline void mi_funcion(){
  std::cout << "me gustan los tapires" << std::endl;
}

class mi_estructura_t{
  protected:
    int x;
  public:
    mi_estructura_t(int x0):x(x0){}
    inline int get_x() const{
      return x;
    }
};

int main(){
  mi_funcion();
  mi_estructura_t s(7);
  std::cout << s.get_x() << std::endl;
  return 0;

Inline y encabezados

Inline permite declarar e implementar funciones directamente en el encabezado (.hpp) sin peligro de multi-definición.

El símbolo de la función inline no aparece nunca explícitamente durante el enlazado, pues todos los llamados a esta función han sido reemplazados.

Recordemos que si una función no es inline, es implementada en un encabezado y este es incluido en varios lugares, el compilador devolverá un error de definición múltiple.

Entre las funciones template, únicamente las funciones inline pueden ser implementadas en el encabezado. Una función template puede perfectamente ser inline.

Si deseamos codificar una función inline declarada en un encabezado (.hpp) pero implementada en un archivo fuente (.cpp), únicamente el prototipo del encabezado debe contener la palabra reservada inline.

Ejemplo 2

archivo.hpp:
inline void f();


archivo.cpp:
#include <iostream>
#include "fichier.hpp"

void f(){
  std::cout << "plop !" << std::endl;
}


Foto: © Everypixel
1
Gracias

Unas palabras de agradecimiento nunca están de más.

Haz una pregunta
Nuestros contenidos son redactados en colaboración con expertos del ámbito tecnológico bajo la dirección de Jean-François Pillou, fundador de CCM.net y director digital en el Grupo Figaro. CCM es un sitio de tecnología líder a nivel internacional y está disponible en 11 idiomas.

Consulta también

El documento « La función inline en C++ » se encuentra disponible bajo una licencia Creative Commons. Puedes copiarlo o modificarlo libremente. No olvides citar a CCM (es.ccm.net) como tu fuente de información.

3 Comentarios