Ale tak się składa, że 3.h ma w sobie 1 oraz 2. I teraz pytanie includować tak, żeby się kompilowało możliwie najkrótszą listę. Czy includować więcej małych plików na wypadek, gdyby na przykład z tego większego coś usunięto?
Ja wiem, że preprocesor wszystko zaincluduje tylko raz, ale pytam się jak to się robi w dużych projektach?
@kasper93: Inkludujesz "publicznie" te nagłówki, które zawierają funkcje, których używasz. Nie obchodzi Cię, że jakiś inny nagłówek też go inkluduje, bo osoba czytająca kod po Tobie może tego nie wiedzieć (albo mogą się zmienić zależności danej biblioteki).
@kasper93: Powinno się zmniejszać zależności i to jest ogólna zasada, ktoś używa mojej klasy np, i ja sobie jakiegoś includa wywalę bo refaktoring robie i muszę teraz jego plik poprawić bo się wysypało wszystko, w dużych projektach tych plików jest N.
Poza tym w większych rzeczach na ogół używa się interfejsów które mają mniej zaimportowanych rzeczy niż deklaracja implementacji a te z kolei powinny mieć ich mniej niż plik z
Ruszamy z kolejnym #rozdajo – wygraj kartę podarunkową do Allegro o wartości 100 zł!
Aby wziąć udział w konkursie, zaplusuj ten wpis oraz w komentarzu krótko odpowiedz na pytanie konkursowe: Jeśli wygrasz, na co wydasz (lub do czego dołożysz) to 100 zł? ( ͡~ ͜ʖ͡°
Mam pytanie, może trochę nietypowe, ale jak są dobre praktyki includowania plików?
Mam na myśli przypadek.
#include "1.h"
#include "2.h"
#include "3.h"
Ale tak się składa, że 3.h ma w sobie 1 oraz 2. I teraz pytanie includować tak, żeby się kompilowało możliwie najkrótszą listę. Czy includować więcej małych plików na wypadek, gdyby na przykład z tego większego coś usunięto?
Ja wiem, że preprocesor wszystko zaincluduje tylko raz, ale pytam się jak to się robi w dużych projektach?
@kasper93: Z tym to naprawdę różnie bywa. Ogólnie wypada dawać guardy w postaci
#ifndef 1_H#defineNo i zgadzam się z wami oboma, ale nie wiem co lepsze.
Poza tym w większych rzeczach na ogół używa się interfejsów które mają mniej zaimportowanych rzeczy niż deklaracja implementacji a te z kolei powinny mieć ich mniej niż plik z