Zugriff auf Attribute beschränken



  • Ich habe eine Klasse mit einer Menge von Attributen, ein paar von denen sind vector.
    Nun gibt es zwei Wege diese Klasse zu benutzen, der eine ist über einen Wrapper und der andere ist direkt.

    Mein Vorhaben sieht so aus: Wenn man diese Klasse direkt instantiiert, sollen alle Felder auch ohne Accessor zugreifbar sein. Sprich keine eigenen getter und setter, das krieg ich noch hin.

    Aber wie beschränke ich den Zugriff auf den vector?

    Sprich wenn ich die Klasse direkt instantiiere, soll der vector nicht zugreifbar (sprich protected) sein, wenn jedoch der Wrapper diese Klasse nutzt, sollte er zugriff auf diese vector haben.

    Wie lös ich das am Besten? Und wenn es geht, ohne friends



  • Seikilos schrieb:

    Wenn man diese Klasse direkt instantiiert, sollen alle Felder auch ohne Accessor zugreifbar sein. [...]
    Sprich wenn ich die Klasse direkt instantiiere, soll der vector nicht zugreifbar (sprich protected) sein

    Was denn nu?

    Generell hört sich das "zugreifbar ohne Getter und Setter" arg nach public membern an - das ist grundsätzlich pfui.

    Wenn ich das allgemeine Problem richtig verstanden habe möchtest du ein Member das allgemein nicht außerhalb der Klasse sichtbar ist (weder direkt noch indirekt), für den Wrapper sichtbar machen.

    Eine mögliche Lösug wäre, den Member protected zu machen und den Wrapper davon private abzuleiten. Dann hat der Wrapper Zugriff auf die protected und public Member deiner Klasse, die Nutzer des Wrappers sind aber auf die public Member des Wrappers beschränkt.


Anmelden zum Antworten