J'obtiens une erreur de compilation lorsque j'essaie de mettre en ligne une méthode d'une de mes classes. Cela fonctionne lorsque je supprime le mot-clé "inline".
Voici un exemple simplifié :
main.cpp :
#include "my_class.h"
int main() {
MyClass c;
c.TestMethod();
return 0;
}
ma_classe.h :
class MyClass {
public:
void TestMethod();
};
ma_classe.cpp :
#include "my_class.h"
inline void MyClass::TestMethod() {
}
J'essaie de compiler avec :
g++ main.cpp my_class.cpp
Je reçois l'erreur :
main.cpp:(.text+0xd): undefined reference to `MyClass::TestMethod()'
Tout va bien si j'enlève le "inline". Quelle est la cause de ce problème ? (et comment dois-je mettre en ligne les méthodes des classes ? Est-ce possible ?)
Merci.