Som besökare på Hamsterpaj samtycker du till användandet av s.k. cookies för att förbättra din upplevelse hos oss. Jag förstår, ta bort denna ruta!
Annons

C++ problem (klasser)

Skapad av Borttagen, 2010-10-20 22:47 i Webbutveckling & Programmering

1 373
7 inlägg
0 poäng
zammo
Visningsbild
Hjälte 6 inlägg
0
Hejsan, alla hamsterpajare.
Är så att jag tänkte börja lära mig basic c++.

på hemsidan : http://www.cppgameprogramming.com
så står det angående klasser Visa spoiler
http://www.cppgameprogramming.com/cgi/nav.cgi?page=arrayclasses


Skrev av koden och fick detta fel medelandet :


[Linker error] undefined reference to `Dog::Dog()'
[Linker error] undefined reference to `Dog::setAge(int)'
[Linker error] undefined reference to `Dog::getAge()'
ld returned 1 exit status


Koden är uppdelad ( Main.cpp,Dog.cpp och dog.h)

koden:
Main.cpp
[code:c++]
// main.cpp
#include <iostream>
#include "Dog.h"
using namespace std;
int main(){
Dog myDogs[5];

for(int i = 0; i <= 4; i++)
{
myDogs.setAge( i * 2);
}
for (int i = 0; i <= 4; i++)
{
cout << "Dog number : " << i << "
Age : " << myDogs[i].getAge();
}
}
[/code]

[i]dog.cpp

[code:c++]// dog.cpp
#include <Dog.h"

Dog::Dog(){
}

int Dog::getAge(){
return age;
}
void Dog::setAge(int newValue){
age = newValue;
}
[/code]

dog.h
[code:c++]//Dog
#ifndef Dog_H
#define Dog_H 1

class Dog{
public:
Dog();
int getAge();
void setAge(int newValue);
protected:
int age;
};
#endif
[/code]



Denna guide är säkerligen uråldrad, har även en fråga...

Hur kan main.cpp uppfatta dog.cpp då den ej är includerad eller dylikt?
eller det verkar som om det är just detta som är felet att den EJ uppfattar dog.cpp


Frågan är alltså: Hur/vad ska jag göra för att få det att fungera?
Tack i förhand // Zammo

Är reklamen ivägen? Logga in eller registrera dig så försvinner den!

gaminggirl
Visningsbild
F 38 Lund Hjälte 8 084 inlägg
0

Svar till zammo [Gå till post]:
#include <Dog.h"
ska vara
#include "Dog.h"

Ingen status

-------
Visningsbild
P 30 Linköping Hjälte 4 577 inlägg
0
Svar till zammo [Gå till post]:
Det är meningen att den ska inkudera dog.h är dog.cpp är inkluderad. Vad som är felet vet jag dock inte



Tillägg av Ziron 2010-10-20 22:53

Nu när jag kollar lite närmre så ser dog.h konstig ut.

#ifndef Dog_H -- #define Dog_H

}; -- inga semikolon efter måsvingar va?

#endif -- Vart kommer det ifrån?

Jag hette tidigare Ziron

zammo
Visningsbild
Hjälte 6 inlägg
Trådskapare
0

Svar till gaminggirl [Gå till post]:
Fixat, dock fortfarande problem.


Svar till Ziron [Gå till post]:
Det ska vara }; då det är en class
och utan #endif så fungerar det inte.

Felet ligger på att dog.cpp inte blir deklarerad.
Ingen som skulle kunna lägga upp en kort klass med

main.cpp , nagot.h , nagot.cpp
alltså 2 .cpp filer och 1 .h

Tack för att ni försöker :)
gaminggirl
Visningsbild
F 38 Lund Hjälte 8 084 inlägg
0

Svar till zammo [Gå till post]:
Heter filen don.h med stort eller litet D, det kan vara så att importen av h-filen inte går som den ska... Det vanliga är att alla filer har små begynnelsebokstäver.

dog.cpp ska inte deklareras, systemet klarar det själv när det ser h-filen.

En annan sak jag hade provat är att ta bort makrona i dog.h och se om det hjälper.



Svar till Ziron [Gå till post]:
Det är makron, saker som kontrolleras och görs innan kompilering


Ingen status

-------
Visningsbild
P 30 Linköping Hjälte 4 577 inlägg
0

Svar till zammo [Gå till post]:
Ok, länge sen jag gjorde nåt i C++ :P
Kör C# i skolan nu, lite annorlunda

Jag hette tidigare Ziron

zammo
Visningsbild
Hjälte 6 inlägg
Trådskapare
0

Svar till gaminggirl [Gå till post]:
Tog bort filerna och gjorde nya, det blir nu detta fel


C:ProgramDev-CppTestmain.cpp In function `int main()':

10 C:ProgramDev-CppTestmain.cpp request for member `setAge' in `myDogs', which is of non-class type `Dog[5]'

14 C:ProgramDev-CppTestmain.cpp request for member `getAge' in `myDogs', which is of non-class type `Dog[5]'

Koden är densamma som ovan, blir lika fel oavsett makrona.

Tack för att du hjälper :))


Forum » Datorer & IT » Webbutveckling & Programmering » C++ problem (klasser)

Ansvariga ordningsvakter:

Användare som läser i den här tråden just nu

1 utloggad

Skriv ett nytt inlägg

Hej! Innan du skriver om ett potentiellt problem så vill vi påminna dig om att du faktiskt inte är ensam. Du är inte onormal och världen kommer inte att gå under, vi lovar! Så slappna av och gilla livet i några minuter - känns det fortfarande hemskt? Skriv gärna ner dina tankar och frågor, vi älskar att hjälpa just dig!

Den här tråden är äldre än Rojks drömtjej!

Det senaste inlägget i den här tråden skrevs för över tre månader sedan. Är du säker på att du vill återuppliva diskussionen? Har du något vettigt att tillföra eller passar din fråga i en ny tråd? Onödiga återupplivningar kommer att låsas så tänk efter en extra gång!

Hjälp

Det här är en hjälpruta

Här får du korta tips och förklaringar om forumet. Välj kapitel i rullningslisten här ovanför.

Rutan uppdateras automagiskt

När du använder funktioner i forumet så visas bra tips här.


Annons
Annons
Annons
Annons