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@XWenn 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.