Kann eine .h Datei nicht includen



  • Hallo

    bin neu hier.

    Ich habe aus einem C++ buch folgenden Code abgeschrieben:

    Ich habe eine ort1.h Datei:

    #ifndef ort1_h
    #define ort1_h ort1_h
    
    class Ort1 {
        public:
            int X() const;
            int Y() const;
            void aendern (int x, int y);
        private:
            int xKoordinate,
                yKoordinate;
    }; 
    #endif
    

    und die möchte ich in der ort1main.cpp includen:

    #include "ort1.h"
    #include <cstdlib>
    #include <iostream>
    
    using namespace std;
    
    int main(int argc, char *argv[])
    {
        Ort1 einOrt1;
        einOrt1.aendern(100, 200);
        cout << "Der Ort hat die Koorinaten x = " << einOrt1.X() << " und y = " << einOrt1.Y() << endl;
        system("PAUSE");
        return EXIT_SUCCESS;
    }
    

    Geht aber nich. keine Ahnung wieso. Es lässt sich nicht kompillieren. Ich bekomme folgende Fehlermeldungen:

    [Linker error] undefined reference to `Ort1::aendern(int, int)' 
      [Linker error] undefined reference to `Ort1::Y() const' 
      [Linker error] undefined reference to `Ort1::X() const' 
      ld returned 1 exit status 
     G:\programmieren\cpp\buch\5.2\Ort1\Makefile.win [Build Error]  [ort1.exe] Error 1
    

    Kann mir jemand bitte helfen? 😞

    PS: Ich arbeite mit Bloodshed Dev-C++



  • Hallo,
    das sind Linkerfehler. Mit der Inkludierung der Header-Datei hat das Problem nichts zu tun. Was fehlt sind die Definitionen der in der Header-Datei deklarierten Methoden. Du hast also die entsprechende cpp-Datei nicht übersetzt bzw. mitgelinkt.



  • danke sehr. währe ich nicht selber draufgekommen.


Anmelden zum Antworten