Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Problem mit friend Funktionen

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
20.07.2007, 15:18 Uhr
~jojo88
Gast


Hi,

wieso bekommen ich bei folgendem Code

C++:
    class Klasse
    {
    public:
        friend void Funktion();
    private:
        int Variable;
    };

    void Funktion()
    {
        Variable = 0;
    }

folgende Fehler
[quote=VC++]
error C2065: 'Variable': nichtdeklarierter Bezeichner
[/quote]

Die freind Funktion müsste doch vollen Zugriff auf die privaten Elemente von Klasse haben...
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
20.07.2007, 15:55 Uhr
Guybrush Threepwood
Gefürchteter Pirat
(Operator)


Weil es in der Funktion Funktion() keine solche Variable gibt.

was du wahrscheinlich willst ist

C++:
void Klasse::Funktion()
    {
        Variable = 0;
    }


 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
20.07.2007, 16:33 Uhr
~jojo88
Gast


Nein moment mal...
der Sinn von friend-Funktionen ist doch, dass sie auf die privaten Elemente einer klasse, in der sie deklariert wurden, zugreifen können...

Jedenfalls versteht ich dieses Beispiel hier so:http://www.cpp-tutor.de/cpp/le16/le16_01.htm#ffunktionen
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
20.07.2007, 16:40 Uhr
Blubber2063



Nein Friend funktionen erlauben dir den Zugriff auf die Member eines Objektes der Klasse, aber du musst natürlich auch ein Objekt von dem Typ haben um darauf zuzugreifen.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
20.07.2007, 16:45 Uhr
Tommix



Hi,
das geht so nicht, weil z.B. bei

C++:
Klasse A;
Klasse B;

Funktion();


nicht klar ist, welche Istanz gemeint ist. Du mußt so was in der Art machen:

C++:
class Klasse
{
public:
    friend void Funktion(Klasse& x);
private:
    int Variable;
};

void Funktion(Klasse& x)
{
    x.Variable = 0;
}



Gruß, Tommix
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: