problem mit undefined reference bei header und klasse



  • Hab eine klasse und die zugehörige header dazu sowie test file
    kommt aber immer die fehler meldung undefined reference Product::displayNumber()

    header

    #ifndef _PRODUCT_H
    #define _PRODUCT_H
    
    class Product{
    
    public:
        float price;
        void displayNumber();
    
    private:
        int number;
    
    };
    
    #endif
    

    Die Class

    #include <iostream>
    #include "product.h"
    using namespace std;
    
    Product::Product(){
    
    void Product::displayNumber(){
      cout << "Number = " << number << endl;
    }
    
    };
    

    Und das Test File

    #include <iostream>
    #include "product.h"
    using namespace std;
    
    int main(){
     Product p;
     p.displayNumber();
     return 0;
    }
    

    Bitte Hilf mit jemand 👍



  • Du hast vergessen den Konstruktor zu deklarieren.
    Und dein displayNumber muss raus aus dem Konstruktor.
    😉



  • danke für die antwort geht immer noch nicht 😮

    #include <iostream>
    #include "product.h"
    using namespace std;
    
    void Product::displayNumber(){
      cout << "Number = " << number << endl;
    }
    
    Product::Product(){
    }
    

    so hast du es doch gemeint oder ?



  • Hast du den Konstruktor jetzt deklariert? Wenn ja, was für ein Fehler bekommst du?



  • Ich habs so gemacht

    header

    #ifndef _PRODUCT_H
    #define _PRODUCT_H
    
    class Product{
    
    public:
        float price;
        void displayNumber();
        Product();
    
    private:
        int number;
    
    };
    
    #endif
    

    class

    #include <iostream>
    #include "product.h"
    using namespace std;
    
    void Product::displayNumber(){
      cout << "Number = " << number << endl;
    }
    
    Product::Product(){
    }
    

    test file

    #include <iostream>
    #include "product.h"
    using namespace std;
    
    int main(){
     Product p;
     p.displayNumber();
     return 0;
    }
    

    Fehler meldung :
    C:\Users\mihailo\AppData\Local\Temp\ccHFU86V.o(.text+0x10):ma.cc: undefined refe
    rence to Product::Product(void)' C:\\Users\\mihailo\\AppData\\Local\\Temp\\ccHFU86V.o(.text+0x1c):ma.cc: undefined refe rence toProduct::displayNumber(void)'
    collect2: ld returned 1 exit status

    Ich sitz da jetzt seit 4 stunden dran 🙄



  • Compilierst du auch sicher alle Sourcefiles?



  • mihailo schrieb:

    so hast du es doch gemeint oder ?

    Genau 👍



  • oh oh 😕

    c++ main.cpp mach ich immer das stimmt wohl nicht 😞

    danke für die hilfe bis jetzt !!!



  • du musst sowohl die datei mit der main, als auch die datei mit den funktionsdefinitionen von Product kompilieren und die dabei entstehenden dateien dann verlinken (eventuell macht das deine entwicklungsumgebung für dich und du musst nur die richtige einstellung finden. dafür kannst du aber die suchfunktion in den passenden subforen hier verwenden)


Anmelden zum Antworten