inline- Funktionen

Du bist neu in der Welt von C++? Dann schau hier herein!
Antworten
DBGTMaster
Beiträge: 190
Registriert: 19. August 2010 10:00

inline- Funktionen

Beitrag 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
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Re: inline- Funktionen

Beitrag 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).
DBGTMaster
Beiträge: 190
Registriert: 19. August 2010 10:00

Re: inline- Funktionen

Beitrag 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
-=Freaky=-
Beiträge: 503
Registriert: 29. Dezember 2006 22:54
Wohnort: HL

Re: inline- Funktionen

Beitrag 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.
RHBaum
Beiträge: 1436
Registriert: 17. Juni 2005 09:58

Re: inline- Funktionen

Beitrag 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 ...
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Re: inline- Funktionen

Beitrag 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).
-=Freaky=-
Beiträge: 503
Registriert: 29. Dezember 2006 22:54
Wohnort: HL

Re: inline- Funktionen

Beitrag 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. ;-)
Antworten