D
volkard schrieb:
tntnet schrieb:
Theoretisch könnte ich tatsächlich ein Programm schreiben, welches nur aus Headern besteht. Ich könnte auch auf so viele andere Sprachfeatures wie Schleifen (kann man durch goto ersetzen) oder Klassen (struct oder einfach mehrere Variable gehen auch). Da geht aber sehr viel verloren. Die Programme werden unleserlich und unwartbar.
das klingt, als würden funktionen im header die programme unwartbar machen. das ist nicht der fall.
Inline-Funktionen und -Methoden sollten in der Regel Einzeiler sein. Alles andere gehört in eine Cpp-Datei.
auch das ist nicht der fall. in sachen aufgeräumtheit und so gehört alles in den header in die klasse rein. so wie bei java. das mit dem auslagern in die cpp ist eine folge unseres übersetzungsmodells, keine forderung aus übersichtlichkeitsgrüden.
Ein Aufruf ist wirklich nicht so teuer. Eine bessere Programmstruktur ist weitaus wichtiger.
das, was ich unter programmstruktur verstehe, ist völlig unabhängig davon, wo die funktionen stehen.
@volkard
Da bin ich anderer Meinung! Die Trennung von Deklaration und Definition (einer Funktion) ist übersichtlicher. Das gilt zumindest dann, wenn ich eine Klasse nur verwenden möchte, also eigentlich nur die (public) Schnittstelle benötige. Das ist sehr aufwändig, wenn eine nichttriviale Klasse komplett inline ist. Sieh dir eine beliebige STL-Implementierung an, dann weißt du, was ich meine. Ich finde, Java ist in dieser Hinsicht kein Vorbild. Da funktioniert das nur einigermaßen, da es standardmäßig JavaDoc gibt...
Stefan.