Seite 1 von 1

inline- Funktionen

Verfasst: 23. August 2011 16:22
von DBGTMaster
Hallo,

wie verwendet ihr denn inline Funktionen bzw Methoden? Bei inline muss die definition doch in der Header- Datei stehen, wobei ich das von der Form her etwas unschön finde :(, weil dann die definitionen in 2 Dateien (h & cpp) gesplittet sind...

Wie geht ihr da vor?

lG

Re: inline- Funktionen

Verfasst: 23. August 2011 16:31
von franzf
afür läuft halt das Programm möglicherweise schneller.
Nebenbei ist inline eh nur ein Hinweis für den Compiler - der ist klug genug und entscheidet selber, ob er sich an dein inline hält oder nicht ;)
Wenn es dich stört, dann lass es. Ist dein Algo zeitkritisch und inline gibt ihm noch den letzten Kick, schalt dein Ästhetikempfinden kurz ab.

Simple getter und setter (auch wenn hier noch geprüft wird oder kleine Berechnungen durchgeführt werden) mach ich im Regelfall inline, weil eben bei wenigen Operationen der Effekt am deutlichsten sein sollte. Wenn die Klasse gePIMPLed ist, hab ich sowieso keine Chance auf inline. Ansonsten stehen Implementierungen in einer (mehrerer) .cpp-Datei(en).

Re: inline- Funktionen

Verfasst: 23. August 2011 21:56
von DBGTMaster
Und würdest du die inline- Methoden direkt in die Header- Datei schreiben oder eine eigene Datei mit den inline- Methoden anlegen?

lG

Re: inline- Funktionen

Verfasst: 24. August 2011 08:41
von -=Freaky=-
ich wuerde sie in die klassendeklaration zu allem anderen tun, damit man die uebersicht zusammen hat. auch wenn ein paar zeilen methodencode mit dabeistehen, finde ich es angenehmer, als wenn man sich durch versch. header zu nur einer klasse wuehlen muss.

Re: inline- Funktionen

Verfasst: 24. August 2011 11:33
von RHBaum
In geschlossenen Übersetzungseinheiten mach ich mir auch keinen Kopf drum.

Wobei ich es eher ausm Bauch raus schon mehr in Implementationsklassen (mit h und cpp, meist recht umfangreich) und komplet headerimplementierte Hilfsklassen (meist sogar templates, oft auch nicht instanzierbar, sondern nur lieferant statischer Methoden) unterscheide.
Aber kurze inline methoden im header hab ich manchmal auch ...

Ciao ...

Re: inline- Funktionen

Verfasst: 24. August 2011 12:05
von franzf
-=Freaky=- hat geschrieben:ich wuerde sie in die klassendeklaration zu allem anderen tun
In der Klassendeklaration kannst du gar nix machen - ist ja nur ne Deklaration. Du meinst aber wahrscheinlich die Definition :P

inline-Funktionen würde ich niemals extra aussplitten (müsste dann am Ende des eigentlichen Headers includiert werden). Ist absolut kontra-Intuitiv (fände ich jedenfalls). Einzige Ausnahme: templates. Bei riesigen template-Interfaces kann es durchaus Sinn machen, die Implementierungen in eigene impl-files auszulagern (.cpp geht ja bei templates nicht).

Re: inline- Funktionen

Verfasst: 24. August 2011 13:20
von -=Freaky=-
franzf hat geschrieben:
-=Freaky=- hat geschrieben:ich wuerde sie in die klassendeklaration zu allem anderen tun
In der Klassendeklaration kannst du gar nix machen - ist ja nur ne Deklaration. Du meinst aber wahrscheinlich die Definition :P
da ist man einmal zu faul zum editieren und schon wirds einem vorgehalten ...
ich meinte natuerlich ins header file, dort wo auch die restlichen methodendeklarationen stehen. danke fuer den hinweis. ;-)