Zugriffsrechte auf Objekte



  • hallo zusammen!

    unter diversen betriebssystemen darf man dateien verschiedene rechte zuweisen.
    z.b.
    admin darf schreiben und lesen.
    angestellter darf nur lesen.
    usw.

    gibt es diesen ansatz auch in C++ bei den Objekten? also kann man ein objekt A anlegen, dass nur von sich selbst und von Objekt B beschrieben werden kann (Set-Methoden aufrufen). Objekt C hingegen darf nur die Get-Methoden von A aufrufen. Geht das?

    Weiter: Kann man sagen, dass alle Objekte, die von B erben, auch Schreibzugriff auf A haben. Childs von C hingegen auch nur lesen dürfen?

    Danke für Antworten! :xmas1:



  • Praktikant schrieb:

    hallo zusammen!

    Dafür gibt's:

    public,
    private und
    protected



  • Gast221212 schrieb:

    Dafür gibt's:

    public,
    private und
    protected

    Damit kann ich aber nur sagen, dass A von B und C gelesen werden darf. ich kann aber nicht weiter differenzieren.
    z.B.:
    B darf auf A schreiben und lesen.
    C darf auf A nur lesen.



  • Zugriffsregelung mit public/protected/private und const sind Hilfsmittel für den Programmierer und sollen vor Fehlern schützen, nicht gegen absichtlichen Missbrauch. Zudem greifen sie nur auf Klassen-, nicht auf Objektebene.

    Was genau willst du denn machen? Was genau meinst du mit "schreiben" und "lesen"?



  • MFK schrieb:

    Was genau willst du denn machen? Was genau meinst du mit "schreiben" und "lesen"?

    Dass es nur auf Klassenebene geht, soll mir recht sein.

    Objekte der Klasse A haben die Methode M1 und M2.
    Objekte der Klasse B sollen beide Methoden aufrufen dürfen.
    Objekte der Klasse C sollen nur die Methode M2 aufrufen dürfen, bei einem Aufruf von M1 soll am besten eine Kompilerfehlermeldung kommen, notfalls auch ein Laufzeitfehler.



  • Das ist IMHO nicht möglich und wenn dann nur mit Verrenkungen. Warum willst du so etwas überhaupt tun?



  • wie sollte gehen?

    benutzerverwaltung wie du sie brauchst gibt es NUR bei WinNT, Win2k, WinXP, W2k3. der grund dafür liegt nicht am windows an sich (auch, aber nur secondär) sondern am dateisystem. win9x nutzen FAT, die vorerst beschriebenen versionen nutzen NTFS.

    erst bei NTFS ist es möglich benutzer einzurichten und zu verwalten.

    also zu deiner frage ob dies unter c++ möglich ist: ein klares NEIN.

    es würde erst dann funktionieren wenn es ein "c++ für win9x (FAT)", ein "c++ für winNT (NTFS)" und ein "c++ für unix (z.b. reiserfs, extended2/3 usw.)" geben würde.

    kommst also nicht um die verwaltung der benutzer auf windows-ebene rum. 😉


Anmelden zum Antworten