Rozbijanie projektu na pliki

0

Cześć.
Piszę program jednocześnie trzymając Symfonie C++ w ręku.
Kod zrobił się zbyt długi postanawiam rozbić to na kawałki.
Niestety jednego nie rozumiem.

Dlaczego klasę miałbym rozbić na dwa pliki do tego:

w main piszę #include "klasa.h"
w klasa.h nic nie piszę
a w klasa.cpp piszę #include "klasa.h"

to mi się nie skleja i wyskakują tylko błędy..

[Linker error] undefined reference to `player::setPosition(int)'

Co teraz?

0

Dołącz do projektu: klasa.cpp

0

właśnie nie do końca. próbowałem już w ten sposób. zresztą w Symfonii piszą o dołączaniu klasa.h po prostu i koniec.

teraz mam zresztą taki problem bo próbowałem ładować po kolei.

#include "dice.h"
#include "game.h"
//#include "street.h"
#include "player.h"

wszystko działa ale jeśli włączę street.h to wyłącza mi player.h

3

Mylisz projekt z plikiem. Musisz zaincludować plik klasa.h w miejsach¹, gdzie używasz typu Klasa. Do projektu musisz dodać plik klasa.cpp, ponieważ w następnej fazie kompilator (a raczej linker) zbiera wszystkie skompilowane pliki i rozwiązuje referencje między nimi, ale może to zrobić tylko gdy "widzi" wszystkie pliki. W innym przypadku dostajesz informację "wiem, że ta funkcja istnieje, ale nie wiem gdzie :(". Dodając plik klasa.cpp do projektu mówisz mu gdzie.

¹ nie wszędzie, warto przeczytać: http://jonjagger.blogspot.co.uk/2013/04/the-include-test.html

0

Znów działa. Dzięki ;)

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0