Dzień dobry i witam na forum
Do końca czerwca muszę ukończyć projekt na zaliczenie C++. Moim zadaniem jest swego rodzaju symulator gry. Sama aplikacja ma już dobre kilkanaście do kilkudzięsieciu klas, ale nie o tym tutaj mowa. Chodzi o to, iż w całym projekcie staram się raczej unikać zmiennych globalnych, a w samej aplikacji jest pewna zmienna (nazwijmy ją Window, ponieważ odpowiada za okno gry), którą potrzebuję wykorzystywać w praktycznie każdej klasie odpowiadającej za część wizualną, toteż przekazuję jej adres przez parametr w konstruktorach.
Koniec wprowadzenia i przechodzę do sedna. Ze względu na to, że sam adres muszę przyjmować a następnie przekazywać go dalej do obiektów innych klas tworzonych w jakiejś klasie (np. obiektów Tekst w obiekcie Zawartość) każdy obiekt jest alokowany dynamicznie poprzez new. (składowe klasy Zawartość zawierają tylko wskaźniki do tych dynamicznie alokowanych obiektów, np. Tekst* JakisTekst = new ClassText(Window,...))
Stąd moje pytanie, czy takie alokowanie obiektów to dobra praktyka? (oczywiście zwalniam pamięc po nich)
Czy nie powinienem zmiennej Window przekształcić na globalną, a same obiekty tworzyć wtedy w obiektach jako zwykłe zmienne a nie poprzez new? Aby jak najmniej wykorzystywać dynamiczną alokację?
Czy takie działanie wpływa negatywnie / pozytywnie na działanie aplikacji czy raczej nie ma to żadnej różnicy i może zostać tak jak jest?
Pozdrawiam