inline in c++-Klassen

Post Reply
Message
Author
Michael

inline in c++-Klassen

#1 Post by Michael »

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

Tom

Re: inline in c++-Klassen

#2 Post by Tom »

jeweils in def. und dekl.

zb:

inline void methode();

Michael

Re: inline in c++-Klassen

#3 Post by Michael »

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

Post Reply