14 Stimmen

Was sind die Vor- und Nachteile der Implementierung von Klassen in Header-Dateien?

Ich liebe das Konzept von DRY (don't repeat yourself [oops]), doch das C++-Konzept der Header-Dateien verstößt gegen diese Regel der Programmierung. Gibt es einen Nachteil, wenn ein Klassenmitglied vollständig im Header definiert wird? Wenn es für Vorlagen richtig ist, warum dann nicht für normale Klassen? Ich habe einige Ideen für Nachteile und Vorteile, aber was sind Ihre?

0voto

stefaanv Punkte 13390

Noch nicht erwähnt: virtuelle Funktionen werden für jedes Include instanziiert, so dass Sie Ihre ausführbare Datei aufblähen können (ich bin nicht sicher, ob dies für alle Compiler gilt).

Es gibt eine Alternative:
Machen Sie eine Menge Dinge in Klassen, die in Ihrer Quelldatei deklariert sind. Ein Beispiel ist das pimpl-idiom, aber es gibt auch Leute, die Angst davor haben, Klassen außerhalb der Header-Datei zu deklarieren. Für private Klassen ist dies jedoch sinnvoll.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X