Dzielenie kodu na moduły
Ostatnio zmodyfikowano 2013-02-21 22:06
Bajt Temat założony przez niniejszego użytkownika |
Dzielenie kodu na moduły » 2013-02-21 21:37:46 Witam Używam VC++ 2010 Express. Zawsze mój kod wyglądał tak: pisałem funkcje i wywoływałem je w main'ie. Jednak teraz chce stworzyć większy projekt: grę w Allegro. I zwracam się z pytaniem do Was: jak mam podzielić kod na poszczególne fragmenty, tak, abym w nowym pliku mógł napisać kod odpowiedzialny za sterowanie, w oddzielnym kod odpowiedzialny za wywołanie animacji itd. Wydaje mi się, że mogę to zrobić poprzez dodanie tylko nowego pliku, i później dołączenie go w #include <nazwa.h> - jednak chcę uzyskać dokładną odpowiedź. Pozdrawiam |
|
megatron |
» 2013-02-21 21:45:29 |
|
mactec |
» 2013-02-21 21:53:31 |
|
SeaMonster131 |
» 2013-02-21 21:55:52 I zamiasz znaku mniejszosci wstawiasz cudzyslow |
Wydaje mi się, że nawet gdy dasz nazwę pliku w <> to gdy kompilator nie znajdzie danego pliku w folderze MinGW, to zacznie go szukać koło plików projektu. |
|
Monika90 |
» 2013-02-21 21:58:39 Załóżmy, że chesz mieć dwa moduły, niech nazywają się main.cpp (moduł główny zawierający funkcję main) i module1.cpp. Pierwsze co musisz zrobić to dodać te dwa pliki do projektu, żeby IDE wiedziało co ma skompilować. Następnie tworzysz interfejs modułu module1, interefejs bedzie zdefiniowany w pliku nagłówkowym, powiedzmy module1.h. Ten plik dołączasz zarówno w pliku main.cpp jak i module1.cpp, za pomocą #include "module1.h" . Plik module1.h musi zawierać tzw. dozory łączenia (include guards), np.: #ifndef MODULE1_H_INCLUDED #define MODULE1_H_INCLUDED
#endif
pomiędzy tymi include guards umieszczasz deklaracje funkcji, definicje klas, itp. z tego modułu, które mają być dostępne dla innych modułów. np.: void draw( int x, int y );
a z kolei definicje funkcji, definicje funkcji składowych klas, itp. umieszczasz w pliku module1.cpp, o tak: #include "module1.h"
void draw( int x, int y ) { }
i potem w pliku main.cpp, możesz używać tego co udostępnia module1, np.: #include "module1.h"
int main() { draw( 0, 0 ); }
|
|
Bajt Temat założony przez niniejszego użytkownika |
» 2013-02-21 22:06:01 Dziękuję |
|
« 1 » |