Setter/Getter Methoden im header?
-
Hallo!
Kurze Anfängerfrage.
Es ist klar dass man die Implementierung in .h und .cpp aufteilen soll. Muss ich getter- und setter-methoden auch in cpp implementieren?
Es ist so, wenn ich in Eclipse, die getter und setter generieren lasse, so werden die alle im header vollständig implementiert eingefügt...Danke schon mal
-
Dit_ schrieb:
Es ist klar dass man die Implementierung in .h und .cpp aufteilen soll. Muss ich getter- und setter-methoden auch in cpp implementieren?
Ich würde es. Ja, normalerweise mag es nicht nötig sein, aber ich habe hierfür mehrere Gründe:
1. Konsistenz
Warum den ein Teil im Header und den anderen Teil in der Sourcedatei implementieren.2. Linkabhängigkeiten
Änderungen im Header führen zu längeren Linkläufen, als Änderungen im Source. Es gibt sogar C++ Idiome, in denen man die Membervariablen in die Sourcedatei verlagert, um die Linkabhängigkeiten bei einer Änderung zu reduzieren (Handle-Body-Idiom).
-
Oder auf getter und setter verzichten:
[url]http://www.kirit.com/C++ killed the get & set accessors[/url]
-
Interessant.. in diesem Forum funktioniert der URL Tag nicht richtig.
-
Janjan schrieb:
Interessant.. in diesem Forum funktioniert der URL Tag nicht richtig.
Doch, er funktioniert (wenn man ihn richtig anwendet).
-
Janjan schrieb:
Oder auf getter und setter verzichten:
[url]http://www.kirit.com/C++ killed the get & set accessors[/url]Der URL Tag funktioniert schon richtig:
Lustiger ArtikelAber das macht den Artikel auch nicht besser. Es wird ein "problem" gelöst um sich dafür einige andere einzukaufen. getter/setter haben schon ihren sinn. vorallem in dem beispiel.