C++ fel. "undefined reference to..."

Permalänk

C++ fel. "undefined reference to..."

Skulle göra en uppgift i C++ idag. Allt gick bra fram tills att jag fick felet "C:\Documents and Settings\HP_Ägaren\Skrivbord\Oscar\C++\Programmering A\Myran MYRA.o:Myran MYRA.cpp:(.text+0x19c): undefined reference to `slumpariktning(char (*) [8], int, int)'". Funktionen som anropas ser ut enligt följande

void slumpariktning (char rutor [8][8], int& xkordinat, int& ykordinat) { int slump = rand () % 4 + 1; switch (slump) { case 1: xkordinat ++; break; case 2: xkordinat --; break; case 3: ykordinat ++; break; case 4: ykordinat --; break; } }

Vad beror det på? Har andra funktioner som deklareras på samma sätt med samma variblar, etc. Problemet försvinner dock om man tar bort referensanropet. Förslag? Tacksam för all hjälp!

Visa signatur

Legalise Internet (and stimpacks)

Permalänk
Medlem

Jämför dessa så hittar du felet:

slumpariktning(char (*) [8], int, int)
slumpariktning (char rutor [8][8], int& xkordinat, int& ykordinat)

Permalänk

Om jag inte minns fel så är det inget referensanrop som du har gjort utan det är en referensvariabel. Om du vill att det ska vara ett referensanrop så ska du göra det när du använder funktionen. Dvs:

int variable1, variable2; slumpriktining(&variable1, &variable2);

Visa signatur

I've... seen things

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av peterthegreat
Om jag inte minns fel så är det inget referensanrop som du har gjort utan det är en referensvariabel. Om du vill att det ska vara ett referensanrop så ska du göra det när du använder funktionen. Dvs:

int variable1, variable2; slumpriktining(&variable1, &variable2);

Nej. & framför en variabel i detta fall är adress-operatorn och används till pekare, inte referenser.

int & a = b; // a är en referens till b.
int * a = &b; // a pekar på b.

Permalänk

Visst, helvete. Så var det! (Har haft felet förut) Tack!

Visa signatur

Legalise Internet (and stimpacks)