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?
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.
magicxxx Geschrieben 5. Juni 2008 Autor Geschrieben 5. Juni 2008 Ah ok, Danke. Bin ziemlich neu in C++
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden