error LNK2001: unresolved external symbol -> Bei normaler Klassendefinition



  • Hi.

    Ich habe eine Frage zu dem Code weiter unten. Warum bekomme ich, wenn der Code so ist wie dargelegt, diese Fehlermeldung:

    1>Test.obj : error LNK2001: unresolved external symbol "public: __thiscall cRGB24Pixel::~cRGB24Pixel(void)" (??1cRGB24Pixel@@QAE@XZ)
    1>Test.obj : error LNK2001: unresolved external symbol "public: __thiscall cRGB24Pixel::cRGB24Pixel(void)" (??0cRGB24Pixel@@QAE@X

    Wenn ich dagegen aus der Variable "cTest" einen Pointer mache (cRGB24Pixel *pcTest), dann kompiliert es. Wäre schön, wenn mir jemand weiterhilft.

    Danke!
    V.K.

    #include <iostream>
    #include <conio.h>
    
    #ifndef CRGB24PIXEL
    #define CRGB24PIXEL
    #pragma once
    class cRGB24Pixel
    {
    public:
      cRGB24Pixel(void);
      ~cRGB24Pixel(void);
      int b;
      int g;
      int r;
    };
    #endif
    
    #include <fstream>
    #include <sstream>
    int main ()
    { 
      cRGB24Pixel cTest;
      return 0;
    }
    


  • VerbalKint schrieb:

    Wenn ich dagegen aus der Variable "cTest" einen Pointer mache (cRGB24Pixel *pcTest), dann kompiliert es. Wäre schön, wenn mir jemand weiterhilft.

    Ist für mich auch logisch - du hast eben CTor und DTor nicht definiert, sondern nur deklariert...

    bb



  • Danke dir, ist mir leider entgangen!
    V.K.



  • Du hast vergessen deinen (De-)Constructor zu definieren. Ändere den Code wie folgt:

    #include <iostream>
    #include <conio.h>
    
    #ifndef CRGB24PIXEL
    #define CRGB24PIXEL
    #pragma once
    class cRGB24Pixel
    {
    public:
      cRGB24Pixel(void);
      ~cRGB24Pixel(void);
      int b;
      int g;
      int r;
    };
    
    cRGB24Pixel::cRGB24Pixel()
    {
     // Constructor code
    }
    
    cRGB24Pixel::~cRGB24Pixel()
    {
     // Deconstructor code
    }
    #endif
    
    #include <fstream>
    #include <sstream>
    int main ()
    {
      cRGB24Pixel cTest;
      return 0;
    }
    

    MfG WilMen



  • WilMen schrieb:

    Du hast vergessen deinen (De-)Constructor zu definieren

    Das Ding heisst Destructor und auf Deutsch Destruktor.


Anmelden zum Antworten