magicxxx Geschrieben 5. Juni 2008 Geschrieben 5. Juni 2008 Hi Ich hab beim kompilieren folgenden Fehler gekriegt, kann mir da jmd vielleicht weiter helfen? binary.h:18: error: extra qualification 'binary::' on member 'operator=' binary.h:19: error: extra qualification 'binary::' on member 'shift' binary.h:20: error: extra qualification 'binary::' on member 'exist' Dir Headerdatei binary.h sieht wie folgt aus : #ifndef _BINARY_H_H_ #define _BINARY_H_ class binary : public vector{ public: binary() {} // Standard-Constructor ~binary() {} // Destructor int binary_decimal(); binary decimal_binary(int d1); binary& operator+=(binary& v1); binary& operator-=(binary& v1); binary binary_inv(binary v1); binary twoscomplement(binary v1); binary& operator=(const binary& v); // Zuweisungs-Operator binary& binary::operator=(const vector& v); binary binary::shift(); bool binary::exist(); friend binary operator+(binary& v1,binary& v2); private: // vector v_binary; }; #endif und der dazugehörige Ausschnitt-Quellcode binary.cpp: binary& binary::operator=(const binary& v) { if(this!=&v) // Selbstzuweisung vermeiden { if(element) delete[] element; n=v.n; if(n!=0) // Wenn kein leerer Vektor { // elementweise kopieren element=new double[n]; for(unsigned int i=0;i<n;i++) element[i]=v.element[i]; } else element=0; } return *this; } binary& binary::operator=(const vector& v) { if(this!=&v) // Selbstzuweisung vermeiden { if(element) delete[] element; n=v.n; if(n!=0) // Wenn kein leerer Vektor { // elementweise kopieren element=new double[n]; for(unsigned int i=0;i<n;i++) element[i]=v.element[i]; } else element=0; } return *this; } binary binary::shift(){ bool exit = false; int i= 0; int deci = 0;; double check = 0.0; int dimension = dim(); binary result; do{ if (element[i] == 1){ for (int j=i; j<dim();j++){ check += element[j]; } check/=(j-i); if (check != 1){ deci = binary_decimal(); deci = deci + pow(2,i); result.decimal_binary(deci); if (result.dim() < dimension){ for (int k = result.dim(); k < dimension; k++){ result.insert(k,0); } } exit = true; } else{ for (int j = 0; j < dimension; j++){ result.insert(j,0); } exit = true; } } i++; }while(!exit); return result; } bool binary::exist(){ bool _exist = true; bool exit = false; double check = 0;; int sum = 0; for (int i = 0; i< dim();i++){ sum += element[i]; } if (sum == 0){ _exist = false; } i=0; do{ if (element[i] == 1){ for (int j=i; j<dim();j++){ check += element[j]; } check/=(j-i); if (check == 1){ _exist = false; } exit = true; } i++; }while(!exit); return _exist; } Woran könnte es liegen? Zitieren
Klotzkopp Geschrieben 5. Juni 2008 Geschrieben 5. Juni 2008 Woran könnte es liegen? Die Fehlermeldung ist eigentlich ziemlich klar: An dem "binary::" an den angemerkten Stellen in der Headerdatei. Innerhalb der Klassendefinition ist dieser Scope-Prefix nicht nur unnötig, sondern schlicht falsch. Zitieren
magicxxx Geschrieben 5. Juni 2008 Autor Geschrieben 5. Juni 2008 Ah ok, Danke. Bin ziemlich neu in C++ Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.