Friend funktion



  • class test
    {
    public:
    	friend unsigned int GetNextAuktionEnd(){ return NextAuktionEnd; };
    private:
    	unsigned int	NextAuktionEnd;
    };
    

    Fehler: error C2597: Ungültiger Verweis auf nicht-statischen Member

    kann mir jemand sagen was ich falsch mache?

    Mfg Hr4rjuku



  • Was willst du erreichen? friend deklariert/definiert Funktionen ausserhalb der Klasse, die Zugriff auf private Member haben sollen.



  • Ich will mit einer Funktion die ausserhalb einer klasse ist die variable aus der klasse verändern.

    Mfg Hr4rjuku



  • Ja, dann muss die Funktion außerhalb der Klasse auch wissen, auf welches Objekt die verweist.
    In einer freien Funktion kann man keine Membervariablen verändern.



  • Nathan schrieb:

    Ja, dann muss die Funktion außerhalb der Klasse auch wissen, auf welches Objekt die verweist.
    In einer freien Funktion kann man keine Membervariablen verändern.

    Versteh grad nicht so ganz was du meinst, kannst du anhand meines Sources mal nen Beispiel posten

    wäre nett

    Mfg Hr4rjuku



  • Hast du kein Buch, wo sowas erklärt wird? So ein Codebeispiel ist das allererste, was man bei friend lernt. Beschaff dir bitte ein gutes C++-Buch, alleine durch das Internet kannst du die Programmiersprache nicht lernen.

    Ich will mal nicht so sein:

    // Globale Funktion, die Zugriff auf Klasse braucht
    void func(int x);
    
    class MyClass
    {
        // Friend-Deklaration
        friend void func(int x);
    };
    


  • Nexus schrieb:

    Hast du kein Buch, wo sowas erklärt wird? So ein Codebeispiel ist das allererste, was man bei friend lernt. Beschaff dir bitte ein gutes C++-Buch, alleine durch das Internet kannst du die Programmiersprache nicht lernen.

    Ich will mal nicht so sein:

    // Globale Funktion, die Zugriff auf Klasse braucht
    void func(int x);
    
    class MyClass
    {
        // Friend-Deklaration
        friend void func(int x);
    };
    

    Sehr nett danke:) werd mir so ein buch beschaffen:

    Mfg Hr4rjuku


Anmelden zum Antworten