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.