<div dir="ltr">Lo curioso es que la unica diferencia para que funcione es poner o quitar el keyword inline: te paso los fragmentos de codigo:<br><br>SDL_Window.h<br>==============<br><br>#ifndef _CSDL_WINDOW_H_<br>#define _CSDL_WINDOW_H_<br>
<br>class CSDL_Window<br>{<br>protected:<br><br>    bool    m_ApplicationFinished;<br><br>public:<br>/* Asi si funciona */<br>/*<br>    bool IsApplicationFinished()<br>    {<br>        return m_ApplicationFinished;<br>    }<br>
*/<br>/* Asi no funciona */<br>inline bool IsApplicationFinished();<br>};<br><br>#endif //_CSDL_WINDOW_H_<br><br>================================================<br><br>SDL_window.cpp<br>=============<br>#include "SDL_Window.h"<br>
<br>bool CSDL_Window::IsApplicationFinished()<br>{<br>    return m_ApplicationFinished;<br>}<br> <br>===============================================<br><br>En resumen: si le quito el keywor inline, funciona perfectamente. Si implemento la funcion en el fichero de cabecera (para hacerlo inline), funciona perfectamente. Pero solo con el keyword inline implementando la funcion en dos partes (.h + .cpp) no linka bien<br>
<br>Quizas tenga que probar con GCC para ver si lo acepta bien y es una cuestion de VC++.<br><br>Por otro lado, y si es problema del linker, se me ocurre otra idea loca. Puede ser que al hacer esto:<br><br><br>#ifndef _CSDL_WINDOW_H_<br>

#define _CSDL_WINDOW_H_<br><br>me cierre las puertas para un inline? La substitucion se produce como si fuera una macro, es decir, en la compilacion, pero quizas con estas salvaguardas, no me deja volver a definir la clase, con lo que es posible que ya no me deje hacer la substitucion de funciones inline. Puede ser?<br>
<br><div class="gmail_quote">2008/9/16 Salvador Pozo <span dir="ltr"><<a href="mailto:salvador@conclase.net" target="_blank">salvador@conclase.net</a>></span><br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">El pasado 2008-09-14 22:06:21, Ferran Ferri escribió:<br>
<br>
FF> Hola.<br>
<br>
Hola:<br>
<br>
FF> En una clase meti una funcion inline mediante el keywaord 'inline'. Esta<br>
FF> funcion simplemente devuelve un booleano de la clase (atributo privado). En<br>
FF> el fichero .h puse:<br>
FF> inline bool IsApplicationRunning();<br>
FF> Y en el .cpp puse:<br>
FF> bool CApp::IsApplicationRunning()<br>
FF> {<br>
FF>     return m_bApplicationRunning;<br>
FF> }<br>
FF> El caso es que sin el inline compila perfectamente y definiendo la funcion<br>
FF> dentro del .h (con lo que seria inline), tambien pero con el inline me da un<br>
FF> error de linkaje (unresolved external symbol)<br>
FF> Mi IDE es un VC++ 2005. Existe algun parametro del linkador/compilador que<br>
FF> controla esto? O es algun problema generico de inline? Me dais alguna pista?<br>
<br>
No puedo estar seguro sin ver el código que has usado, pero me da la impresión de que has cometido algún error en la definición de la función. Debería funcionar de ambas formas.<br>
<br>
Si el error está en la fase de enlazado, probablemente hay un error, de modo que en lugar de una definición de función de la clase CApp, estás definiendo otra cosa. El compilador no se queja porque asume que estás definiendo un identificador externo (declarado en otro fichero fuente), pero el enlazador no encuentra ese identificador, y da un error.<br>


<br>
Repasa las declaraciones, y si no encuentras en problema, envía parte del código.<br>
<br>
Hasta pronto.<br>
<font color="#888888"><br>
--<br>
Salvador Pozo (Administrador)<br>
mailto:<a href="mailto:salvador@conclase.net" target="_blank">salvador@conclase.net</a><br>
_______________________________________________<br>
Lista de correo Cconclase <a href="mailto:Cconclase@listas.conclase.net" target="_blank">Cconclase@listas.conclase.net</a><br>
<a href="http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net" target="_blank">http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net</a><br>
Bajas: <a href="http://listas.conclase.net/index.php?gid=2&mnu=FAQ" target="_blank">http://listas.conclase.net/index.php?gid=2&mnu=FAQ</a><br>
</font></blockquote></div><br></div>