acabo de tener una discusión con un compañero de trabajo en relación con el código en archivos de cabecera:¿El código en los archivos de encabezado siempre estará en línea?
Se dice que el código se define en los archivos de cabecera siempre ser inline por el compilador (como el código de la obtieneNumero() en mi ejemplo cabecera) . Digo que se insertará a veces, siempre que el compilador decida hacerlo. Entonces, ¿cuál de nosotros tiene que traer un pastel al trabajo por decir mentiras sucias? ¿O tal vez los dos estamos equivocados ...?
MyClass.hpp
class MyClass
{
public:
MyClass();
~MyClass();
int GetNumber() const
{
//...;
return m_number;
};
private:
int m_number;
};
Gracias por todas las buenas respuestas. Esto ciertamente nos ayudó a mí y a mi compañero de trabajo a aclarar este tema. No obstante, no podemos decidir quién debe traer el pastel ... ;-) – nabulke
¿Aceptaría que incluir líneas no depende de si la función está definida en un encabezado o no? – adf88
Sí, estoy de acuerdo, con un comentario: realmente debe tener cuidado con lo que está hablando si usa el término 'en línea'. Si define una función miembro dentro de un archivo de encabezado, _será_ una función en línea (el lugar de la definición importa). Si esta función en línea se insertará posteriormente es, como ha señalado, hasta el compilador (el lugar de definición no importa). Creo que la respuesta de Mattis es una buena explicación de eso. – nabulke