Frage zu Klassen
-
Hi,
In manchen projekten habe ich gesehn dass die leute die ganzen Funktionen in dem Header definieren, also z.B
class SomeClass: public: void DoSomething(...) { // .. } bool HasSomething(...) { // .. }Ich hab bisher aber die ganzen Funktionen so definiert
SomeClass::DoSomething(...) { // .. etc }Meine frage lautet, gibt es irgendwelchen unterschied zwischen den 2 Methoden? Soll ich die Erste oder die Zweite methode bevorzugen? Danke.
-
Die zweite Variante wird nicht standardmässig als inline behandelt (was ansich ja selbst nicht undbedingt viel heisse muss). Was wichtiger ist, ist die Trennung von Schnittstelle (.h) und Implementierung (.cpp), da du dann die Implementierung einer Funktion ändern kannst, ohne alle Quelldateien, die diese Dateie inkludiert neu übersetzen musst, sondern nur die geänderte Datei.