Podział projektu na pliki – dołączanie plików .h do .cpp

0

Czy jeżeli podzielę projekt na różne pliki, to czy powinienem wszystkie #include i zmienne z funkcjami zdefiniować w main.h i dołączać go do każdego innego pliku .cpp?

0

Plik .h dołączaj tylko tam gdzie to potrzebne. Na małpę można to zrobić tak -- spróbuj skompilować bez #include, a jak się nie kompiluje, to dołączaj -- ale tylko to co potrzebne...

A poza tym, nie rób jednego pliku .h do wszystkiego. Jak już podzieliłeś projekt na wiele plików .cpp, to zrób może do każdego plik .h z rzeczami, które są w tym pliku...?

To tak na początek -- ćwicz, a potem poczytaj o PImpl.

0

na początku pliku .h masz

#ifndef __plik_h__
#define __plik_h__
#endif

Co preprocessor czyta tak:
Jeśli nie ma zadeklarowanego __plik_h_ to zadeklaruj.
Jeśli jest to pomija to czyli dwa razy nie wczytasz tych samych nagłówków.

Czyli nic się nie stanie i możesz dowoli tam includować jak leci to i tak się wykonuje w czasie kompilacji co w żadnej sposób negatywnie nie wypływa na wyjściowy kod.

0
Nadziany Kaczor napisał(a):

Czyli nic się nie stanie i możesz dowoli tam includować jak leci to i tak się wykonuje w czasie kompilacji co w żadnej sposób negatywnie nie wypływa na wyjściowy kod.

Trochę przesada -- "inkludowanie jak leci" może wydłużyć czas kompilacji... I oczywiście zaśmieca projekt.

W .h wsadzasz tylko interfejsy klas (czyli nagłówki metod [i pola publiczne, których raczej nie powinno być w ogóle]) oraz to, co musi być dostępne -- pola, inline itp.

0

Jak ten if nie przejdzie w preprocesorze to cały plik jest pomijany, czyli nic nie robi wychodzi z niego i tyle.

0
Nadziany Kaczor napisał(a):

Jak ten if nie przejdzie w preprocesorze to cały plik jest pomijany, czyli nic nie robi wychodzi z niego i tyle.

Oczywiście, że tak, tylko jak jest włączany (nawet jednokrotnie!) i jest za duży to i tak opóźnia budowanie... Słyszałeś o PImpl, które jest tego najlepszym przykąłdem...?

0

W miarę możliwości includuj pliki h tylko w plikach cpp. To taka dobra rada :)
Czasem robi się jeden wielki plik h z innymi includami, ale to raczej w sytuacji, gdy używasz jakichś bibliotek. Czasami biblioteki są rozwalone po wielu plikach, wtedy można sobie dla wygody zrobić jeden h z dołączonymi najczęściej używanymi nagłówkami z bibliotek. Dlaczego nie stdafx? Po pierwsze porządek. Po 2. Jeśli masz kilka projektów i te projekty korzystają z tych bibliotek, to masz wtedy jeden plik h, który includujesz we wszystkich projektach.

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