Probleme mit OOP/Headerdatei
-
Ich habe heute meine ersten, zarten Schritte mit OOP unternommen, jedenfalls wollte ich das. C++ war aber anscheinend dagegen

Und zwar wollte ich eine Zufallszahl berechnen lassen im Bereich [von..bis] das Ganze verpackt in eine Header-Datei.
Benutzt habe ich Dev-C++ unter M$-Windows 2000.Es folgt der Code:
Random.h
class Random //gibt Zufallszahlen im Bereich [von..bis] zurück { int von; int bis; public: Random(void); //Konstruktor void SetzeParameter(int Randvon, int Randbis); int HoleZahl(void); ~Random(void); //Destruktor };Random.cpp
#include "Random.h" #include <stdlib.h> Random::Random(void) { von = 0; bis = 100; } void Random::SetzeParameter(int Randvon, int Randbis) { if (Randvon > Randbis) { int Temp; Temp = Randvon; Randvon = Randbis; Randbis = Temp; } von = Randvon; bis = Randbis; } int Random::HoleZahl(void) { int Temp = rand() % (bis - von) + von; return Temp; } Random::~Random(void) { von = 0; bis = 0; }rand2.cpp
#include <iostream.h> #include <time.h> #include <stdlib.h> #include <stdio.h> #include "Random.h" int main() { Random Zufall; srand(time(NULL)); int i; int j; for (i = 0; i < 2; i++) { for (j = 0; j < 5; j++) { Zufall.SetzeParameter(i, j); cout << Zufall.HoleZahl(); } } getchar(); return 0; }Wenn ich versuche, die rand2.cpp zu kompilieren bekomme ich folgende Fehler:
[Linker error] undefined reference to
Random::Random()' [Linker error] undefined reference toRandom::SetzeParameter(int, int)'
[Linker error] undefined reference toRandom::HoleZahl()' [Linker error] undefined reference toRandom::~Random()'
[Linker error] undefined reference to `Random::~Random()'Kann mir da vielleicht der ein oder andere weiterhelfen?

-
Hallo,
ich schätz mal du hast Random.cpp nicht mitkompiliert. Im Falle von Dev-C++ könnt ich mir vorstellen,
dass du die Datei nicht dem Projekt hinzugefügt hast, sondern einfach nur normal editiert hast.Ist jetzt aber nur geraten.
grüße
-
UNeverNo schrieb:
Wenn ich versuche, die rand2.cpp zu kompilieren bekomme ich folgende Fehler:
[Linker error] undefined reference to
Random::Random()' [Linker error] undefined reference toRandom::SetzeParameter(int, int)'
[Linker error] undefined reference toRandom::HoleZahl()' [Linker error] undefined reference toRandom::~Random()'
[Linker error] undefined reference to `Random::~Random()'Kann mir da vielleicht der ein oder andere weiterhelfen?

Sicher nicht. Wie du den Fehlermeldungen entnehmen kannst, handelt es sich hier um Linkerfehler. Solche entstehen beim Linken und nicht beim Kompilieren.
der verdacht hat schon recht: du hast offensichtlich vergessen das Ergebnis der Kompilation von rand2.cpp mitzulinken.
-
Gut geraten

Allerdings bekomme ich jetzt sowohl beim Dev-C++, als auch VC++ 6.0 eine Unknown Software Exception

Da bräuchte ich nochmal Hilfe

-
Wahrscheinlich weil sich Division durch 0 (auch Modulo) nicht sonderlich gut macht.
-
Omg, ja, danke

Btw bei Deiner HP scheint MySQL sich grad ne Pause zu gönnen

-
UNeverNo schrieb:
Btw bei Deiner HP scheint MySQL sich grad ne Pause zu gönnen

Das passiert schon mal, da die Rechner unseres Fachschaftsrats nicht ganz so zuverlässig sind, wie die eines großen ISPs.