friend class 'Syntaxfehler'



  • Visual Studio 2008 exp.
    c++

    folgende Bsp-Klassen habe ich angelegt:

    //EigLib.h 
    #include "ListView.h"
    class ListView;
    
    class Pruef
    {
    public:
    	friend class ListView;
    	Pruef(void);
    	~Pruef(void);
    };
    
    //EigLib.cpp
    #include "EigLib.h"
    
    Pruef::Pruef(void)
    {
    }
    
    Pruef::~Pruef(void)
    {
    }
    

    sowie

    //ListView.h
    #include "EigLib.h"
    
    class ListView
    {
    public:
    	// Hier wollte ich eine variable der classe Pruef anlegen 
              Pruef pr;  //hier Syntaxfehler
    
    	ListView(void);
    	~ListView(void);
    };
    
    //ListView.cpp
    #include "ListView.h"
    
    ListView::ListView(void)
    {
    }
    
    ListView::~ListView(void)
    {
    }
    

    Die nachfolgenden Fehlermeldungen werden angezeigt:

    c:\dokumente und einstellungen\novell\eigene dateien\visual studio 2008\projects\friendclass\friendclass\listview.h(7) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'pr'
    c:\dokumente und einstellungen\novell\eigene dateien\visual studio 2008\projects\friendclass\friendclass\listview.h(7) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
    c:\dokumente und einstellungen\novell\eigene dateien\visual studio 2008\projects\friendclass\friendclass\listview.h(7) : error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
    

    Wo liegt mein Fehler??

    Vielen Dank



  • Zirkulaäre Abhängigkeit ListView.h <> EigLib.h (wenn deine Kommentare in den Codes korrekt sind).
    In EigLib.h kannst du dir den include schenken, und schon brauchen sich die beiden Header nicht mehr gegenseitig.



  • Vielen Dank brabbel 🙂



  • Randfrage: Wozu benötigt eine Klasse, die sowieso alle Member public definiert, überhaupt Freunde?


Log in to reply