Linker Fehler



  • Hi ich hab folgendes Problem: habe folgenden quellcode, kann ihn mit VS 6.0 kompilieren, aber dann meckert der compiler

    --------------------Konfiguration: Vector - Win32 Debug--------------------
    Linker-Vorgang läuft...
    MSVCRT.lib(crtexe.obj) : error LNK2001: Nichtaufgeloestes externes Symbol _main
    Debug/Vector.exe : fatal error LNK1120: 1 unaufgeloeste externe Verweise
    Fehler beim Ausführen von link.exe.

    Vector.exe - 2 Fehler, 0 Warnung(en)

    Quelltext: Vector.cpp

    #include "Vector.h"

    Vector::Vector()
    {
    laenge=10;
    feld=new int[laenge];
    }

    Vector::Vector(int z)
    {
    laenge=z;
    feld=new int[laenge];
    }

    Vector::Vector(int z,int array[])
    {
    laenge=z;
    feld=new int[laenge];
    for(int i=0;i<laenge;i++)
    {
    feld[i]=array[i];
    }
    }

    Vector::Vector(const Vector& object)
    {
    laenge=object.laenge;
    feld=new int[laenge];
    for(int i=0;i<laenge;i++)
    {
    feld[i]=object.feld[i];
    }
    }

    Vector::~Vector()
    {
    delete[] feld;
    }

    int Vector::operator=(const Vector& object)
    {
    if(&object!=this)
    {
    if(laenge>object.laenge)
    {
    delete feld;
    laenge=object.laenge;
    feld=new int[laenge];
    }
    else if(laenge<object.laenge)
    {
    delete feld;
    feld=new int[laenge];
    }

    for(int i=0;i<laenge;i++)
    {
    feld[i]=object.feld[i];
    }
    }
    return *feld;
    }

    Vector Vector::operator+(const Vector& object)
    {
    Vector summe;
    if(laenge>object.laenge)
    {
    delete summe.feld;
    summe.laenge=object.laenge;
    summe.feld=new int[summe.laenge];
    }
    else
    {
    delete summe.feld;
    summe.laenge=laenge;
    summe.feld=new int[summe.laenge];
    }
    for(int i=0;i<summe.laenge;i++)
    {
    summe[i]=feld[i]+object.feld[i];
    }

    return summe;
    }

    int& Vector::operator[](int index) const
    {
    if((index>=0)&&(index<laenge))
    {
    return feld[index];
    }
    else
    {
    cout<< "Falscher Index -- Programm Abbruch --" <<endl;
    //exit(1);
    }
    }

    int Vector::upper()
    {
    return laenge;
    }

    ostream& operator<<(ostream& strm, const Vector& v)
    {
    v.print(strm);
    return strm;
    }

    void Vector::print(ostream& strm) const
    {
    for(int i=0;i<laenge;i++)
    {
    strm << '[' ;
    strm << feld[i];
    strm << ']' << ' ';
    }

    strm << endl;
    }

    Quelltext: Vector.h

    #ifndef VECTOR_H_
    #define VECTOR_H_

    #include <iostream.h>

    class Vector
    {
    public:
    // Verwaltungsmethoden
    Vector();
    Vector(int z);
    Vector(int z,int array[]);
    Vector(const Vector& object);
    ~Vector();
    int operator=(const Vector& object);

    // Nur-Lese Methoden
    Vector operator+(const Vector& object);
    int& operator[](int index) const;
    int upper();
    void print(ostream& strm=cout) const; // Ausgabe

    private:
    int laenge;
    int *feld;
    };

    ostream& operator<<(ostream&, const Vector&);

    #endif /*VECTOR_H_*/

    kann mir da mal wer helfen? blick grad gar nix mehr 😕



  • So wie es scheint fehlt der Einsprungspunkt. Du musst die Funktion "main" implementieren.

    int main(int argc, char **argv)
    {
        // Code steht hier
        return 0;
    }
    

    P.S.: Benutze die Code-Tags für das Posten von Code.



  • Alles klar, vielen dank, jetzt läufts, habs zwar anders gemacht ohne main aber jetzt gehts :p


Anmelden zum Antworten