Я надеюсь, что понимаю ваш вопрос, но вот мой путь.
Заголовочные файлы (.h), которые идут вместе с .cpp файлом для создания класса, - это то, как вы делаете вещи в C ++.
В большинстве случаев SomeClass.h будет создавать прототип класса, а SomeClass.cpp будет содержать код, необходимый для работы класса.
Если по какой-то причине GCC делает что-то совсем другое для компиляции, тогда я понятия не имею. Я предполагаю, что это та же идея для любого компилятора.