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 Artikel

    Aber 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.


Anmelden zum Antworten