magicxxx Geschrieben 5. Juni 2008 Teilen 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 Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Klotzkopp Geschrieben 5. Juni 2008 Teilen 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 Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
magicxxx Geschrieben 5. Juni 2008 Autor Teilen Geschrieben 5. Juni 2008 Ah ok, Danke. Bin ziemlich neu in C++ Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
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.