[GELÖST]Zugriff auf private verbieten



  • Hi

    Ich habe folgenden Code:

    class A
    {
      int a;
    };
    class B
    {
      public:
        friend class A;
        void Fnc(A Data)
        {
          Data.a = 3;
        };
    };
    

    Ich will, dass auf den private-Bereich der Klasse A keiner einen Zugriff hat (ausser die Klasse selbst und wenn man die Adresse hat). Ist das möglich? Und wenn ja, wie?



  • Auf den privaten Bereich von A hat niemand einen Zugriff..

    Im übrigen ist das friend da auch noch falsch platziert..



  • X.DarkForce.X schrieb:

    Ist das möglich? Und wenn ja, wie?

    Ja, indem du private verwendest. Das ist ja gerade der Sinn dahinter...

    Falls du was anderes meinst, drück dich verständlicher aus.



  • drakon schrieb:

    Auf den privaten Bereich von A hat niemand einen Zugriff..

    Auf was sonst?

    drakon schrieb:

    Im übrigen ist das friend da auch noch falsch platziert..

    Mein Compilier schluckt das. Müsste der im private stehen?



  • X.DarkForce.X schrieb:

    Auf was sonst?

    Du hast uns falsch verstanden.

    X.DarkForce.X schrieb:

    Mein Compilier schluckt das.

    Was noch lange nicht heisst, dass es semantisch sinnvoll ist. Freundschaft wird gewährt, nicht an sich gerissen. Also schreib friend in die Klasse, die Zugriff auf sich erlauben will.



  • Aha! Beide Klassen müssen die Freundschaft akzeptieren.



  • X.DarkForce.X schrieb:

    Aha! Beide Klassen müssen die Freundschaft akzeptieren.

    Nein, nur die Freundschaft gewährende Klasse muss ein friend haben.



  • Also muss Freundschaft angeboten werden und kann dann nur vom Empfänger genutzt werden...


  • Administrator

    X.DarkForce.X schrieb:

    Also muss Freundschaft angeboten werden und kann dann nur vom Empfänger genutzt werden...

    So wie im echten Leben...

    Du weisst übrigens schon, dass es Grundlagenbücher gibt, mit denen man sowas deutlich schneller lernt, als wenn man hier im Forum fragen geht?

    Grüssli



  • Dravere schrieb:

    Du weisst übrigens schon, dass es Grundlagenbücher gibt, mit denen man sowas deutlich schneller lernt, als wenn man hier im Forum fragen geht?

    Da fallen mir so einige Gründe ein... Aber gehen wir einfach mal davon aus, dass er/sie unsere Nähe sucht 😃



  • Dravere schrieb:

    X.DarkForce.X schrieb:

    Also muss Freundschaft angeboten werden und kann dann nur vom Empfänger genutzt werden...

    So wie im echten Leben...

    Ich habe in der Logik-Vorlesung gelernt, daß Freundschaft symmetrisch ist im Gegensatz zur Liebe, die das nicht sein muß.
    Also gerade nicht wie im richtigen Leben.



  • Dravere schrieb:

    So wie im echten Leben...

    😃

    HighLigerBiMBam schrieb:

    Aber gehen wir einfach mal davon aus, dass er/sie unsere Nähe sucht 😃

    o.O

    HighLigerBiMBam schrieb:

    er/sie

    Er...

    Danke, kann geclosed werden.


  • Administrator

    volkard schrieb:

    Ich habe in der Logik-Vorlesung gelernt, daß Freundschaft symmetrisch ist im Gegensatz zur Liebe, die das nicht sein muß.
    Also gerade nicht wie im richtigen Leben.

    Also das mit der Liebe wird wohl schon auch stimmen, aber mit der Freundschaft geht es doch genau gleich. Sie muss angeboten werden, heisst aber nicht, dass sie auch automatisch erwiedert wird. Und es kommt sogar vor, dass sie einseitig genutzt wird.

    Euer Professor wahr wohl ein Optimist 😉

    Grüssli



  • Vielleicht sollte man unterscheiden zwischen
    a) dem "Angebot zur Freundschaft" (wie es im Schlüsselwort friend ausgedrückt wird) und
    b) der "gelebten Freundschaft" (das Eingehen auf das Angebot durch den Aufruf).

    Insgesamt wird in C++ Freundschaft aber sowieso nicht wie im richtigen Leben abgebildet: Da wird nämlich erst beidseitig die "Bereitschaft zur Freundschaft" erklärt und dann auch beidseitig (und deutlich komplexer) gelebt.

    Gruß,

    Simon2.

    P.S.: Bei "Liebe" wird das Ganze IMHO noch viel komplexer, weil wir viel zu viele Phänomene unter diesen Begriff pressen ...



  • love -Schlüsselwort!



  • Bashar schrieb:

    love -Schlüsselwort!

    😃



  • Bashar schrieb:

    love -Schlüsselwort!

    Dann aber irgendwie im Zusammenhang mit Vererbung 😃


Log in to reply