Statische Methoden auslagern
-
Hy,
ich schreibe gerade an einer Klasse und habe klar strukturiert zwischen Definition in der Headerfile und der Implementierung in der cpp.
Ich moechte nun eine Methode als static definieren. Nach ein wenig googeln hab ich herausgefunden das der Code dann in der Headerfile steht - gibt es eine Moeglichkeit dies zu umgehen?
Mir wurde mal erklaert, dass die Aufteilung untern anderem genutzt wird, dass ich dann nur meine Definition "zeigen" muss, die Implementierung - und damit die Hauptarbeit - ist damit verborgen. Das waere ja bei static-Methoden nicht der Fall - also laesst sich die Implementierung im Header umgehen, bzw. gibt es eine andere Moeglichkeit Methoden von einer Klasse aufzurufen ohne zuvor ein Objekt zu erstellen?
-
Statische Funktionen können genauso wie normale in der Headerdatei deklariert und in der Implementierungsdatei definiert werden. Was du wahrscheinlich meinst, sind Inline-Funktionen, die müssen gleich im Header definiert werden.
-
Ich meine die Methoden, die ich aufrufen kann ohne ein Objekt von der Klasse bilden zu muessen.
Welche sind das, static oder inline?
-
cproc schrieb:
Ich meine die Methoden, die ich aufrufen kann ohne ein Objekt von der Klasse bilden zu muessen.
Welche sind das, static oder inline?google nach "statische funktion" und "inline funktion", dann weißt du es.
-
cproc schrieb:
Ich meine die Methoden, die ich aufrufen kann ohne ein Objekt von der Klasse bilden zu muessen.
Welche sind das, static oder inline?Das sind statische Funktionen.
Inline-Funktionen (bzw. deren Anweisungen) werden bei jedem Aufruf direkt in den Code hineinkopiert.@ Heinzelotto: Den Tipp kannst du dir eigentlich sparen. Grundsätzlich kann man das bei jeder (Anfänger-)Problemstellung sagen, da sie mit grosser Wahrscheinlichkeit schon einmal im Internet gelöst wurde...
-
Nexus schrieb:
Den Tipp kannst du dir eigentlich sparen. Grundsätzlich kann man das bei jeder (Anfänger-)Problemstellung sagen, da sie mit grosser Wahrscheinlichkeit schon einmal im Internet gelöst wurde...
ich finde nicht, dass man das Obige als "Problemstellung" auffassen sollte, mir kam es eher wie eine Frage nach der Definition eines Begriffes vor, und die lässt sich auch sehr einfach per google lösen.
-
Nexus schrieb:
Was du wahrscheinlich meinst, sind Inline-Funktionen, die müssen gleich im Header definiert werden.
Nein, die kann man mit dem Schlüsselwort 'inline' deklarieren und ebenfalls außerhalb des Klassenrumpfes definieren.
-
Belli schrieb:
Nein, die kann man mit dem Schlüsselwort 'inline' deklarieren und ebenfalls außerhalb des Klassenrumpfes definieren.
Es geht nicht um den Klassenrumpf. Ich sagte, Inline-Funktionen müssten im Header definiert werden - egal, ob in der Klassendefinition oder ausserhalb.