Fehler beim kompilieren



  • Hi, bin ziemlich neu in c++ programmierung, muss in meinem Studium jetzt ein code zum laufen bringen Ausschnitt aus den code sieht folgend aus:

    class vector
    { friend class matrix;

    public:
    double* element;
    unsigned int n;

    vector() :element(0), n(0) {}
    vector(const vector& v) :element(0) {*this=v;}
    vector(const unsigned int l, const double initval=0.0);
    vector(const unsigned int, const double []);
    vector(const matrix& mat);
    ~vector() {if(element) delete[] element;}

    und dazugehöriger fehler:

    /vector.h:21: error: expected ',' or '...' before '&' token
    /vector.h:21: error: ISO C++ forbids declaration of 'matrix' with no type

    kann mir da bitte jmd. weiterhelfen



  • Na, haste denn matrix.h eingebunden?



  • matrix.h ist im main programm eingebunden



  • Wenn Du eine C++-Frage hast, wieso stellst Du sie dann im C++/CLI-Board?

    Ich habe eine Vermutung: Früher (sprich: bei nicht-konformen Compilern) waren Friend-Deklarationen oft gleichzeitig Forward-Deklarationen. Das ist jetzt nicht mehr der Fall. Setze mal vor die Zeile "class vector" eine neue Zeile "class matrix;" (ohne "", versteht sich).

    Wenn es das nicht war:
    a) zeig' bitte mehr relevanten Code
    b) pack den Code in CPP-Tags
    c) sag uns vielleicht auch noch, wo in diesem Code "Zeile 21" überhaupt sein soll



  • bladeexx schrieb:

    matrix.h ist im main programm eingebunden

    Du musst es dort einbinden wo es gebraucht wird.
    Im obengezeigten Code reicht eine Forwad Dekl. im Header.
    In der Impl. (cpp) musst Du matrix.h inkludieren.

    Zudem würde ich einen anderen Namen für vector nehmen (da der vector aus der Stanard Lib. auch so heisst). Alternativ kannst du auch namespaces verwenden.

    Ausserdem ist das das falsche Forum.
    Korrekt wäre C++. Das hier ist C++/CLI.

    Simon

    Edit: LordJaxom war mal wieder schneller.. 🙂



  • ok werde versuchen.

    sry für den falschen forum


Anmelden zum Antworten