Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Dzielenie kodu na moduły

Ostatnio zmodyfikowano 2013-02-21 22:06
Autor Wiadomość
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
P-76671
megatron
» 2013-02-21 21:45:29
Dobrze mowisz trzeba stworzyc nowy plik i go podpiac do projektu za pomoca #include

I zamiasz znaku mniejszosci wstawiasz cudzyslow

Dzielenie kodu na kilka plikow zrodlowych
P-76675
mactec
» 2013-02-21 21:53:31
P-76677
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.
P-76679
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.:
C/C++
#ifndef MODULE1_H_INCLUDED
#define MODULE1_H_INCLUDED
/* tutaj cała zawartośc pliku */
#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.:
C/C++
void draw( int x, int y );

a z kolei definicje funkcji, definicje funkcji składowych klas, itp. umieszczasz w pliku module1.cpp, o tak:
C/C++
#include "module1.h"

void draw( int x, int y )
{
    /* tu implementacja funkcji draw*/
}

i potem w pliku main.cpp, możesz używać tego co udostępnia module1, np.:
C/C++
#include "module1.h"

int main()
{
    draw( 0, 0 );
}
P-76680
Bajt
Temat założony przez niniejszego użytkownika
» 2013-02-21 22:06:01
Dziękuję
P-76685
« 1 »
  Strona 1 z 1