Kann mir vielleicht jemand erklären wie das genau mit den inline-Methoden funktioniert.
Ich weiß, daß methoden die direkt in der Klassendeklaration implementiert werden automatisch inline deklariert sind. Das funktioniert auch ganz prima.
Jetzt habe ich aber eine Methode, die ich gerne als inline deklarieren würde, die aber ca. 4-5 Zeilen zur Implementierung braucht. Und ich finde das äußerst unschön dies in den Deklarationsteil zu packen.
Also konkret: Wie deklariere ich eine Methode als inline in meiner Klasse (.h-file) und implementiere diese Methode dann im (.c-file).
Mein Problem dabei ist nämlcih, daß andere Klassen, die diese Methode benutzen sollen immer einen Fehler beim Kompilieren verursachen (undefined reference).
Vielen Dank für eure Hilfe.
Mfg
Michael
inline in c++-Klassen
Re: inline in c++-Klassen
Hi,
ich bin´s nochmal. Gilt das nur für void Methoden. Ich habe damit nämlich noch immer Probleme.
Meine Methode hat folgende Form:
in .h steht:
inline float method(void) const;
in .cpp steht:
inline float Class::method(void) const {
// do something
}
Die Klasse wird auch zu einem Objectfile kompilert. Danach habe ich allerdings Probleme beim Linken. Denn genau die oben erwähnte Methode erzeugt dann Fehler:
undefined Reference to Class::method(void) const
Hat vielleicht jemand eine Ahnung woran das liegt.
Mfg Michael
ich bin´s nochmal. Gilt das nur für void Methoden. Ich habe damit nämlich noch immer Probleme.
Meine Methode hat folgende Form:
in .h steht:
inline float method(void) const;
in .cpp steht:
inline float Class::method(void) const {
// do something
}
Die Klasse wird auch zu einem Objectfile kompilert. Danach habe ich allerdings Probleme beim Linken. Denn genau die oben erwähnte Methode erzeugt dann Fehler:
undefined Reference to Class::method(void) const
Hat vielleicht jemand eine Ahnung woran das liegt.
Mfg Michael