Tak jak wspomniał @tkz, przydałby się jakiś CMake albo makefile co można by zbudować ten projekt. Jedną z rzeczy, która mi się nie podoba to to, że definiujesz explicite pusty destruktor. Jeśli chcesz sforsować wygenerowanie destruktora przez kompilator i mieć go explicite w klasie użyj słowa kluczowego default. Wiele stałych masz jako magic numbers. Pliki powinny być pogrupowane. Jeśli twój kod nie będzie używany jako `plain c` to nie używaj nazewnictwa .h dla headerów C++. Zamiast tego nazywaj je .hpp. Twoje formatowanie jest niespójne, użyj jakiegoś formatera, na przykład clang format. Niektóre pliki masz puste. Brak readme w repozytorium. Plik z logami nie powinien znaleźć się w repo. Zaimplementuj albo ją sam, albo użyj gotowca do pętli stałokrokowej. Preferuj używania intów z określoną ilością bitów: int32_t int64_t int16_t int8_t itp zamiast int. Int ma tylko powiedziane według standardu, że ma >= 16 bitów. Co prawda na większości współczesnych architektur ma 32 bity, nie mniej jednak złą praktyką jest nadużywanie intów. Popracuj nad nazwami commitów: test5 nie dużo mówi. Usuń pliki z twojego ide takie jak .cbp i inne.