Projekt w C++, pliki h i cpp

0

Piszę duży projekt w c++ na zaliczenie. Jest w nim sporo plików h i cpp. Kompletnie nie orientuje się gdzie dawać includy. Czytałem w necie że najlepiej tylko w plikach cpp. Ale przecież są sytuacje, że w plikach h też muszą być includy, np. jak np. klasa zawiera obiekt innej klasy (mam każdą klasę w osobnym pliku. Albo inny przyklad to jak klasa zawiera kontener vector. Wtedy tez jest problem, bo muszę robic include <vector> w h. Czy jest jakas regula albo zasada w programowaniu jak to należy robić? Bo z tego co widzę to jest duży problem jak się to ma źle zrobione bo preprocesor głupieje i wyrzuca bardzo dziwne błędy.

5

Tak. Zasada jest taka, że jak musisz to załączasz include'y. W przeciwnym wypadku - nie.

Polecam lekturę: http://jonjagger.blogspot.com/2013/04/the-include-test.html

1

W pierwszej kolejności w .cpp, a w .h tylko to co jest potrzebne w tym .h.

0

A kiedy zachodzi ta konieczność includowania w .h? W takich przypadkach jak podałem czy jeszcze jakieś inne przykłady? A rozumiem, że w main.cpp trzeba wszystkie h zaincludowac?

Druga sprawa. Jak mam klasę i dla tej klasy mam przeladowany operator<< poza klasa. Gdzie mam umiescic funkcje operator<<. W pliku w klasa(deklaracja w h, definicja w cpp) czy w main.cpp?

Trzecia sprawa. A using namespace std gdzie umieszczać?

3

Dostałeś linka, nawet nie musiałeś szukać. Kliknij go.

Definicje funkcji z reguły w .cpp.

0

A czy w plikach cpp tez starac sie unikać includow i robić forward declaration?

2

W większości przypadków to nie ma znaczenia, ale jak czegoś nie używasz to nie inkluduj.

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