Mój amatorski projekt zaczął rosnąć i się komplikować, więc postanowiłem rozdzielić go na kilka mniejszych plików z kodem źródłowym. Moje pytanie: czy robię to poprawnie, optymalnie i zgodnie ze standardami?
Niepotrzebnie dołączasz w pliku .h biblioteki, które nie będą potrzebne (potrzebne będą zapewne w odpowiadającym pliku .cpp). Poważnym błędem jest „using namespace” w pliku .h
Jeżeli chcesz, żeby zmienne były globalnymi, dostępnymi w wielu plikach CPP to tak.
Extern oznacza, że zmienna jest deklarowana, a nie definiowana. Musisz ją potem zdefiniować w jednym z plików cpp bez słowa extern.
Poza tym powinieneś unikać umieszczania wszelkich #include w plikach ‘h’ i umieszcać je w plikach ‘cpp’. Możesz umieścic #include w ‘h’, ale staraj się tego unikać.
Zauważ, że w pliku H nie potrzebujesz znać dokładnej definicji klasy ‘klasa1’, a jedynie zadeklarować, że taka istnieje. Dopiero w pliku cpp znajduje się odpowiedni #include
// plik H
class klasa1;
void jakasmetoda( klasa1*); // potrzebny jest wskaznik
//plik cpp
#include "klasa1" // tutaj jest definicja klasy 'kalasa1'
#include "plikH" // tutaj jest deklaracja metody
void jakasmetoda( klasa1 *obiekt)
{
implementacja
}