Ankündigung

Einklappen
Keine Ankündigung bisher.

Programierfrage für die Elite

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Programierfrage für die Elite

    warum bekomme ich die fehler:
    error: invalid use of undefined type 'struct b'
    error: forward declaration of 'struct b'

    wenn ich den folgenden code kompilieren will? :

    #include

    using namespace std;

    class b;

    class a
    {
    public:
    b* pointer;
    void atest();

    };

    void a::atest()
    {
    cout

    #2
    was soll das "class b;" unter namespace bewirken? mal weg machen bzw. class b davor deklarieren. steht ja auch in dem error.

    Kommentar


      #3
      solid fritzl postete
      was soll das "class b;" unter namespace bewirken? mal weg machen bzw. class b davor deklarieren. steht ja auch in dem error.

      Prototyp der Klasse, damit der Compiler weiß, dass es eine Klasse B gibt und sie vor der eigentlichen Implentierung benutzt werden kann.

      Der Fehler scheint auf den ersten Blick am Aufruf pointer->btest(); zu liegen, da der Compiler zwar weiß, dass es eine Klasse B gibt, aber er weiß nicht, dass sie die Methode btest besitzt. Füg mal einen Prototypen für die Methode hinzu (bin mir nicht sicher, ob das reicht):

      class b;
      void b::btest();

      // Ok, das klappt nicht. Pack einfach die Klassendefinition von B vor die Implementierung von A, dann geht es.

      Kommentar

      Lädt...
      X