Filar Społeczności Ranmus Opublikowano 11 Kwietnia 2008 Filar Społeczności Udostępnij Opublikowano 11 Kwietnia 2008 Ma ktoś jakieś materiały dotyczące prawidłowego konstruowania plików źródeł c++ w projekcie? No bo kurcze nie wiem na jakiej zasadzie jest to kompilowane. Tworzę pliki cpp, pliki nagłówkowe i teraz co i jak ze sobą połączyć by się kompilowało prawidłowo w odpowiedniej kolejności. W C# żaden preprocesor do "inkludowania" nie jest potrzebny, bo najpierw kompilator zbiera wszystkie pliki i sprawdza wszędzie deklaracje typów, a potem automatycznie wszystko wiąże i rozpoczyna program od funkcji main. Natomiast w C/C++ jak wiadomo jest inaczej. Załóżmy, że mam tak: /main.cpp /coreclass.cpp /addonclass.cpp /modules/module1.cpp /modules/module2.cpp /interfaces/interface1.cpp /interfaces/interface2.cpp Pierwszy plik zawiera glowna funkcje, coreclass i addonclass zawieraja 2 podstawowe klasy, moduly podobnie, ale klasy jako dodatki, no i odpowiednie interfejsy dziedziczone przez klasy. Teraz jak mam zaprojektować linkowanie, żeby odpowiednie definicje były widoczne we wszystkich plikach. Tworzycie jeden zbiorczy nagłówkowy z definicjami wszystkich typów czy moze osobne pliki naglowkowe dla kazdego zrodla cpp? No i w jakiej kolejności zostaną skompilowane pliki cpp? Wszelkie sugestie dotyczące jak najlepszego planowania struktury projektu mile widziane, ponieważ dopiero co rozpoczynam poważniejszą "przygodę" z c++. Wnerwia mnie ten język, wolałbym ten program wymodzić w C#. :/ Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Will Opublikowano 11 Kwietnia 2008 Udostępnij Opublikowano 11 Kwietnia 2008 hmm.. w zasadzie to polega na tym ,że najpierw all jest kompilowane a następnie pliki obj są linkowane.. Najlepiej mieć jeden plik nagłówkowy a w nim wszystkie includy bibliotek zewnętrznych.. a potem strażnikiem bronić podwójnego includowania.. jeśli chodzi o klasy: //klasa.h #ifndef _klasa.h_ #define _klasa.h_ #include"MainHeader.h" //tu includujemy te glowne includy class CKlasa { void FOO(); } #endif //klasa.cpp #include"klasa.h" void CKlasa::FOO() { //cos tu robimy } I jak potem chcesz tej klasy użyć do dziedziczenia dla innej klasy czy jako składnika.. to poprostu dodajesz to tego modułu #include"klasa.h" Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Filar Społeczności Ranmus Opublikowano 11 Kwietnia 2008 Autor Filar Społeczności Udostępnij Opublikowano 11 Kwietnia 2008 Właśnie znalazłem na gamedevie o organizacji plików, polecam: http://www.gamedev.net/reference/programmi...les/default.asp Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się