Array



  • hi, hab da folgendes Array und versteh den fehler nicht

    GLfloat rotate[] = {
      0.0f, // Rotation
      0.0f, // Geschwindigkeit
      0.0f, // x
      0.0f, // y
      0.0f  // z
    };
    

    wenn ich nun auf das Arry zugreifen will kommt folgender Fehler

    SDL_opengl.cpp: In function `void Display()':
    SDL_opengl.cpp:91: error: use of `rotate' is ambiguous
    SDL_opengl.cpp:12: error:   first declared as `GLfloat rotate[5]' here
    /usr/include/c++/3.3/bits/stl_algo.h:1566: error:   also declared as `void
       std::rotate(_ForwardIter, _ForwardIter, _ForwardIter)' here
    

    mfg blan



  • Ich gehe recht in der Annahme dass Du Englisch nicht besonders gut beherrscht? (BTW nicht als böswillige Kritik gemeint)

    SDL_opengl.cpp:91: error: use of `rotate' is ambiguous

    Fehler: Die Benutzung von 'rotate' ist mehrdeutig.

    SDL_opengl.cpp:12: error: first declared as `GLfloat rotate[5]' here

    Fehler: Wurde zuerst als 'GLfloat rotate[5]' hier (SDL_opengl.cpp:12) deklariert

    /usr/include/c++/3.3/bits/stl_algo.h:1566: error: also declared as `void
    std::rotate(_ForwardIter, _ForwardIter, _ForwardIter)' here

    Fehler: Wurde nochmal als 'void std::rotate(....)' hier (stl_algo.h) deklariert

    ➡ GLfloat rotate und void rotate(...) überschneiden sich.

    Vermutlich hast Du using namespace std; im Programm?



  • Es steht doch alles in der Fehlermeldung drinnen (kannst du vielleicht kein Englisch?)
    rotate ist mehrdeutig (array und stl funktion)



  • LordJaxom schrieb:

    Ich gehe recht in der Annahme dass Du Englisch nicht besonders gut beherrscht? (BTW nicht als böswillige Kritik gemeint)

    hrm eigentlich nicht aber ich hab mehrere rotates's ausgeschlossen da der fehler bei der definition nicht kommt...

    Es steht doch alles in der Fehlermeldung drinnen (kannst du vielleicht kein Englisch?)
    rotate ist mehrdeutig (array und stl funktion)

    alles klar - nicht gleich die beherrschung verlieren...

    mfg blan



  • Der Compiler hindert dich auch nicht daran etwas zu definieren, was es bereits gibt, sofern es die Möglichkeit gibt (z.B. über Namespace-Operatoren) beim Zugriff eines dieser Symbole eindeutig zu identifizieren (und das war hier der Fall, da sich das eine rotate im Namensraum std und das andere rotate in deinem Scope befand).

    Beim Zugriff merkt der Compiler allerdings, dass Du den Namensraum std komplett in Deinen eigenen Scope hereingezogen hast (mit using namespace), und damit gibt es das Symbol "rotate" zweimal, sozusagen nicht mehr unterscheidbar für den Compiler.



  • LordJaxom schrieb:

    Der Compiler hindert dich auch nicht daran etwas zu definieren, was es bereits gibt, sofern es die Möglichkeit gibt (z.B. über Namespace-Operatoren) beim Zugriff eines dieser Symbole eindeutig zu identifizieren (und das war hier der Fall, da sich das eine rotate im Namensraum std und das andere rotate in deinem Scope befand).

    Beim Zugriff merkt der Compiler allerdings, dass Du den Namensraum std komplett in Deinen eigenen Scope hereingezogen hast (mit using namespace), und damit gibt es das Symbol "rotate" zweimal, sozusagen nicht mehr unterscheidbar für den Compiler.

    okay, danke


Anmelden zum Antworten