Agora que separei as classes para os arquivos .h e .cpp, preciso usar um makefile ou ainda posso usar o comando "g ++ main.cpp"?
Compilar vários arquivos de uma só vez é uma péssima escolha se você for colocar isso no Makefile.
Normalmente em um Makefile (para GNU / Make ), basta escrever que:
# "all" is name of the default target, running "make" without params would use it
all: executable1
# for C++, replace CC (c compiler) with CXX (c++ compiler) which is used as default linker
CC=$(CXX)
# tell which files should be used, .cpp -> .o make would do automatically
executable1: file1.o file2.o
Dessa forma, make
seria recompilar adequadamente apenas o que precisa ser recompilado. Também é possível adicionar alguns ajustes para gerar as dependências do arquivo de cabeçalho - para que o make também reconstrua adequadamente o que precisa ser reconstruído devido às alterações no arquivo de cabeçalho.
g++ *.cpp -o output