Fehler im Code, hilfe :(



  • Hey Ihr lieben!
    Ich bin gerade am verzweifeln....
    Also ich erstelle gerade ein Programm(C++) das zwei Mengen A und B vergleicht. Die Elemente der Mengen werden vom Benutzer abgefragt. Unter anderem habe ich eine Methode(Name der Methode= UnionGleich) kodiert, die die Menge A mit B vereint(A= A υ B). Ja und falls die Ergebnismenge zu klein ist, soll ein ErrCode zurück gegeben werden.
    Nun zum Codeschnipsel:

    cout << "\na.UnionGleich(b): ";
    if(a.UnionGleich(b) == CSet.NoErr) cout << "NoErr\n";
    else cout << "Overflow\n";
    

    Das Problem: Ich krieg immer die Meldung:
    warning C4832: Das Token '.' ist nach UDT 'CSet' illegal
    error C2275: 'CSet': Ungültige Verwendung dieses Typs als Ausdruck
    error C2228: Links von ".NoErr" muss sich eine Klasse/Struktur/Union befinden.

    OK ich verstehe: CSet muss eine Klasse/Struktur/Union sein, und das ist CSet auch, ich hab eine .h Datei angelegt in der klar und deutlich steht:

    class Cset
    {
    ...
    }
    

    Ich steh total aufm Schlauch 😞 Bestimmt ist die Lösung sehr einfach und ich gerade zu Blöd oder so 🙄

    Hoffe einer von euch kann mir helfen 😋

    Grüße
    Julia



  • Vermutlich muss es CSet::NoErr heißen. Da du aber die wesentlichen Dinge verschweigst, kann man nur raten.



  • manni66 schrieb:

    Vermutlich muss es CSet::NoErr heißen. Da du aber die wesentlichen Dinge verschweigst, kann man nur raten.

    OK, hier ein Teil der Quelltext für die .h datei

    #ifndef CSET_H
    #define CSET_H
    
    ...
    class CSet
      {
     public:
       ...
       ErrCode UnionGleich(CSet &set);
       ...
     private:
    ...               
      };
    
    #endif   //CSET_H
    

    und hier die Kodierung von UnionGleich:

    CSet::ErrCode CSet::UnionGleich(CSet &set){
       CSet temp_c; temp_c.EmptySet();                  
    
       set.Copy(temp_c);                                
       for(int i = 0; i < card; i++){                                                
          if( !(temp_c.Member(elemArr[i])) ){                                             
             if(temp_c.AddElem(elemArr[i]) == Overflow) 
                return(Overflow);
          }
       }
       EmptySet();                                      
       temp_c.Copy(*this);                              
       return(NoErr);                                   
    }
    

    Danke für die schnelle Antwort! 🙂
    Grüße
    Julia



  • Sehe nicht die Deklaration von NoErr.


Log in to reply